To begin, place a medium pot over medium heat and melt the butter. Add the chopped onion and sauté for 5 to 7 minutes until translucent and soft, stirring occasionally to prevent browning. This builds the soup's flavour base.
Add the minced garlic and cook for 1 minute until aromatic. Stir in the diced carrots and continue to sauté for another 3 to 4 minutes. This helps to release their natural sweetness before simmering.
Pour in the stock and bring to a gentle boil. Add the bay leaves and cubed potatoes. Reduce the heat to low and let the soup simmer uncovered for 20 minutes, or until the potatoes are fork tender. Skim the surface if foam appears.
While the soup simmers, place the eggs in a separate pot and cover with cold water. Bring to a boil, then reduce to a gentle simmer for 10 minutes. Once cooked, transfer to a bowl of cold water to stop the cooking process.
Peel the hard-boiled eggs once cool. Slice or halve them, depending on preference. Set aside as these will be added just before serving for optimal texture and presentation.
Once the potatoes are tender, add the chopped sorrel to the pot. Cook for 3 to 5 minutes until wilted and soft. Sorrel cooks quickly and will turn a deep green with a pleasant sour note.
Lower the heat and stir in the sour cream. Mix gently until the soup takes on a creamy consistency. Do not boil after adding the sour cream, as it may curdle. Adjust seasoning with salt and pepper to taste.
Remove and discard the bay leaves. Allow the soup to rest for 5 minutes off the heat. This short resting period allows the flavours to meld and deepen without overcooking the delicate sorrel.
To serve, ladle the soup into bowls and place a sliced or halved egg into each serving. Garnish with fresh dill and a dollop of sour cream if desired. Serve with dark rye bread for a rustic, traditional touch.