Heat olive oil in a heavy-bottomed pan over medium heat.
Sweat onion, leek, carrot, and fennel for 3 minutes.
Cover vegetables with cold water and increase heat to high.
Add garlic, peppercorns, mushrooms, celery, tomatoes, and parsley stalks.
Bring to a boil and simmer gently for 15 minutes.
Strain stock through a sieve and discard the vegetables.
Sweat chopped shallots and garlic in olive oil until soft.
Add 600ml of stock and cubed potatoes to the pan.
Cook for 12 minutes until potatoes are tender and season well.
Stir in butter and cream then bring back to a boil.
Add chopped parsley to the soup and remove from heat.
Wait two minutes for the parsley to wilt slightly.
Blend the soup in batches until smooth using a blender.
Sieve the soup for extra smoothness and adjust consistency with stock.