1kg floury potato, peeled and cut into even-sized chunks
50g cheddar, grated
Poach the fish. Put the fish in the frying pan and pour over 500ml of the milk. Stud each onion quarter with a clove, then add to the milk, with the bay leaves. Bring the milk just to the boil - you will see a few small bubbles. Reduce the heat and simmer for 8 mins. Lift the fish onto a plate and strain the milk into a jug to cool. Flake the fish into large pieces in the baking dish.
Hard-boil the eggs. Bring a small pan of water to a gentle boil, then carefully lower the eggs in with a slotted spoon. Bring the water back to a gentle boil, with just a couple of bubbles rising to the surface. Set the timer for 8 mins, cook, then drain and cool in a bowl of cold water. Peel, slice into quarters and arrange on top of the fish, then scatter over the chopped parsley.
Make the sauce. Melt half the butter in a pan, stir in the flour and cook for 1 min over moderate heat. Take off the heat, pour in a little of the cold poaching milk, then stir until blended. Continue to add the milk gradually, mixing well until you have a smooth sauce. Return to the heat, bringto the boil and cook for 5 mins, stirring continually, until it coats the back of a spoon. Remove from the heat, season with salt, pepper and nutmeg, then pour over the fish.
Assemble and bake. Heat oven to 200C/fan 180C/gas 6. Boil the potatoes for 20 mins. Drain, season and mash with the remaining butter and milk. Use to top the pie, starting at the edge of the dish and working your way in - push the mash right to the edges to seal. Fluff the top with a fork, sprinkle with cheese, then bake for 30 mins. Make up to a day ahead, chill, then bake for 40 mins.