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 very gentle simmer. Cover with a lid and cook for two minutes. Remove from the heat and set aside to stand and infuse for five minutes until the fish is almost cooked. Drain the fish through a colander into a bowl, then pour the milk into a jug.
Meanwhile, for the topping, cook the potatoes in simmering water for 15 minutes or until the potatoes are soft. Drain in a colander then return to the pan and mash with the butter, cream and three-quarters of the grated cheese. Season to taste with salt and freshly ground black pepper.
Preheat the oven to 200C/400F/Gas 6.
Fill a saucepan one-third full with water and bring to the boil. Gently add the eggs to the water and cook for nine minutes. Drain in a colander under running water for 1-2 minutes then transfer to a bowl of very cold water and set aside.
Melt the butter in a medium saucepan and stir in the flour. Cook for a few seconds, and then gradually add the infused milk, wine and cream, stirring over a medium heat for five minutes until the sauce is smooth and thick. Season with salt and freshly ground black pepper.
Remove the sauce from the heat and add the dill fronds into the sauce. Peel the eggs and cut in half.
Spoon a third of the sauce into the base of a large ovenproof dish or 6-8 individual dishes. Scatter half the fish fillets over the sauce, breaking them into chunky pieces as you go, discarding the skin, onion and bay leaves. Place half the eggs on top and pour over another third of the sauce. Continue with the layering process until the ingredients are used up.
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 sprinkle with the remaining cheese. Place the dish on a baking tray and bake in the centre of the oven for about 45 minutes or until the top is golden-brown and the filling is bubbling.