Offer: magazine subscription
Try your first 5 issues for only £5 today and never miss our best recipes
Place the fish fillets in a large, wide saucepan and pour over the milk. Add the onion wedges and bay leaves, tucking them in around the fish. Bring to a very gentle simmer, then cover with a lid and remove from the heat immediately. Leave to stand and infuse for 10 mins or until the fish is just cooked. Drain the fish in a colander over a large jug to reserve the infused milk, then tip the fish into a bowl. Set aside.
Meanwhile, make the topping. Put the potatoes in a large saucepan of cold water, bring to the boil, then simmer for 15 mins or until the potatoes are soft but not falling apart. Drain well, return to the pan and mash with the butter, half the cheese and the crème fraîche until smooth. Season to taste and set aside.
To finish the filling, melt the butter in a medium saucepan and stir in the flour. Cook for a few secs, then gradually add the infused milk, stirring over a medium heat for 3 mins until the sauce is smooth and thick. Stir in the spinach and wine or vermouth, if using, and cook for 2 mins more. Remove from the heat and stir in the dill. Season to taste.
Heat oven to 200C/180C fan/gas 6. Spoon a third of the sauce into the base of a 3-litre shallow rectangular dish. Scatter half the fish fillets over the sauce, breaking them into chunky pieces and discarding the skin, any stray bones, onion and bay leaves as you go. Pour over another third of the sauce, then top with more fish. Continue the layers once more, finishing with sauce.
Spoon the potato over the fish mixture, starting at the edges. Swirl the potato with the back of a spoon and sprinkle over the remaining cheese. Place the dish on a baking tray and bake in the centre of the oven for 45 mins or until the potato is golden and the filling is bubbling.
Comments, questions and tips