Method
For the filling, pour the milk into a large saucepan and add the onion and bay leaves, season with salt and freshly ground black pepper. Place the fish fillets in the pan and bring to a gentle simmer, cover with a lid and cook for 2 minutes. Remove from the heat and set aside to stand and infuse for 5 minutes until the fish is almost cooked. Drain the fish in a colander into a bowl and pour the milk into a jug.
Meanwhile for the topping, cook the potatoes in simmering water for 15 minutes or until soft. Drain in a colander then return to the pan and mash with the butter, cream and ¾ of the grated cheese. Season to taste with salt and freshly ground black pepper.
Pre–heat the oven to 200ºC / gas mark 6.
Fill a saucepan with water and bring to the boil gently add the eggs to the water and cook for 9 minutes. Drain in a colander under running water for 1–2 minutes then transfer to a bowl of a very cold water and set aside. Peel the eggs when cold and cut in half.
Melt the butter in a medium saucepan and stir in the flour, cook out for a few seconds and gradually add the infused milk, wine and cream and stir over a medium heat for 5 minutes until the sauce thickens and season. Remove the sauce from the heat, add dill.
Spoon a 1/3 of the sauce into the base of a large ovenproof dish or individual dishes and scatter half the fish fillets over the sauce, breaking them into chunky pieces discarding the skin, onion and bay leaves. Place half of the eggs on top and pour another 1/3 sauce and continue layering.
Spoon the potato over the fish mixture starting at the edges before making your way into the centre. Fluff up the potato with a fork and scatter remaining cheese. Place the dish/es on a baking tray and bake in the centre of the oven for about 45 minutes until golden brown.