284ml carton double cream (plus a 142ml carton if serving 6)
50g parmesan, freshly grated (use 85g/3oz if serving 6)
Tip the flour and ½ tsp salt into a blender, add the eggs and milk and whizz to a smooth batter. There’s no need to let the batter stand as it only has a little flour in it - you can use it straight away.
Put a non-stick 16-18cm omelette or crÃªpe pan over a high heat and wait until you feel a good heat rising. Brush the pan lightly with oil then pour in about 2 tbsp of the batter, using a small ladle, and quicky swirl it around the pan to coat. Cook for 30-60 seconds, then loosen the edges with a small palette knife and check underneath. It should be a mid golden-brown colour. Carefully flip the pancake over and cook the other side for 20-30 seconds. Slide the pancake out onto a paper towel. Repeat with the remaining batter, oiling the pan in between and stacking the pancakes on top of each other, then leave to cool.
Lay the haddock, skin-side down, on a board and hold it at the tail end. Using a serrated knife, make a nick between the skin and flesh at this end. Pulling the skin hard towards you, slide the knife away from you in a sawing motion - the skin will come away easily in one piece. Put the fish, milk, onion and bay leaf in a shallow pan. Top with the butter wrapper, butterside down, and bring up to the boil. Remove from the heat and leave for about 7 minutes, until the flesh is firm.
Lift the fish out of the pan and put it on a plate. Strain the milk into a jug. Press down on the fish with your finger, and watch the fish separate into perfect flakes. Check for any stray bones and discard them.
Melt the butter in a medium pan and stir in half of the flour with a wooden spoon. Remove from the heat, stir vigorously, then cook for 30-60 seconds over a gentle heat, stirring. Repeat with the remaining flour. Now stir in the hot milk, in stages.
Scrape the sauce into a bowl and whisk in the egg yolks - the warmth of the sauce makes it absorb the yolks better. Now whisk in two-thirds of the gruyere, which will melt into the sauce. Switch back to using the wooden spoon and gently fold in the fish to retain the whole flakes. Now’s the time to taste it as everything’s in except the egg whites, which are neutral. Grind over salt and black pepper and fold in.
Whisk the egg whites in a metal bowl with a balloon whisk until they form stiff peaks, then fold into the warm sauce with a rubber spatula until evenly incorporated. Liberally butter 4 or 6 small gratin dishes (measuring 20 x 11.5cm across the top). Lay a pancake in each dish so that half lines the base and the other half overhangs. Divide the souffle between the pancakes and flip over the overhanging halves to loosely enclose. Preheat the oven to fan 170C/conventional 190C/gas 5.
Bring the cream to the boil in a pan, then remove from the heat. Whisk in the remaining gruyere and season. Ladle the sauce over the pancakes and top with the Parmesan. Stand the dishes on a baking sheet and bake for 15 minutes, or until the mixture has risen and the top is browned.