Boil potatoes until tender. Drain and mash them with the butter, crème fraîche and warm milk and season with salt and pepper. Set aside and keep warm.
Heat the milk in a large pan, then add the smoked haddock and cod. Cut the onion in half, make an incision in one of the halves and insert the bay leaf. Push the cloves into the same onion half and place this into the pan with the milk and fish. Bring the milk to the boil, then reduce the heat and simmer gently for 6–7 minutes.
Meanwhile, finely chop the remaining onion half and the leeks. Heat the butter with the olive oil in a small frying pan and gently fry the onion and leeks for 4–5 minutes, until softened but not browned.
Remove the fish from the pan, and set aside to cool slightly. Keep the milk in the pan.
Add the flour to the leeks and stir well. Fry for 1 minute, stirring frequently. Gradually spoon in the milk from poaching the fish, and stir it in well each time. Add all the milk in this way, and heat gently until the sauce has thickened. Taste the sauce for seasoning, and add more salt or pepper if necessary.
Break the fish into chunks, being careful to feel for any bones and remove any skin, then fold the fish pieces into the sauce. Add the raw prawns and frozen peas to the mixture.
Place an ovenproof pie dish onto a baking tray (this will catch any of the mix that bubbles over when cooking). Spoon the fish mixture into the bottom of the dish. Sprinkle the parsley and lemon zest over the top.
Carefully top with the cooled mashed potato. Use a fork to spread the mash over the pie and create a rough texture on top. Dot the pie with the remaining half of the butter and place in the oven for 25–30 minutes, or until golden-brown and bubbling.