Preheat the oven to 180°C.
Place fish, onion, and bay leaf in a pan with 450ml of milk.
Simmer for eight minutes until the fish is cooked.
Remove the fish and flake into chunky pieces in an ovenproof dish.
Strain the poaching milk into a jug and set aside.
Boil potatoes in salted water for 10 minutes.
Drain most water and steam-cook on low heat for 20 minutes until tender.
Peel and mash the potatoes with 50g of butter.
Beat the remaining 200ml of hot milk into the mash and season.
Boil eggs for eight minutes, peel, chop, and add to the fish.
Sprinkle chopped parsley over the fish and eggs.
Melt 25g butter, stir in flour, and cook for one minute.
Whisk in the reserved poaching milk and simmer until thickened.
Season the sauce with nutmeg and pour over the fish mixture.
Spread mashed potatoes on top and sprinkle with grated cheese.
Bake for 30 minutes until golden and bubbling.