Fry butter, onions, leek, and celery with thyme and a bay leaf in a large pan until soft.
Add 2 liters of water, fish bones, parsley stalks, and peppercorns, then boil and simmer for 20 minutes.
Remove from heat, add lemon slices, cover with film, and leave to cool with bones and vegetables.
Refrigerate the stock overnight if possible.
Strain the stock through a sieve and set aside for use.
Sauté butter, shallots, mushrooms, thyme, and a bay leaf in a pan without browning.
Add white wine and reduce until nearly evaporated, then add fish stock and reduce again until nearly evaporated.
Stir in double cream and simmer gently for 20 minutes.
Strain the sauce through a fine sieve into a clean saucepan.
Combine milk, onion studded with bay leaf and cloves, peppercorns, and 200ml water in a pan and simmer.
Poach haddock fillets skin-side up in the liquid for 5 minutes.
Simmer water with white wine vinegar and poach eggs for 3 minutes.
Keep poached eggs warm in clean hot water until needed.
Wilt spinach gently in a hot pan with olive oil.
Press the spinach in a colander to remove excess liquid.
Peel skin from haddock and place a small pile of spinach in the center of four warm plates.
Top spinach with haddock and another small nest of spinach to hold the poached egg.
Spoon sauce over the fish and garnish with chives and tomatoes.