Peel the onions and cut them into smallish pieces. Melt 50 g/2 oz of the butter in a saucepan over a fairly low heat, add the onions and crushed coriander and stir around until the onions have just softened. Then pour in the stock and bring to the boil. Add the rice, cover the pan and simmer gently for 25 minutes. Meanwhile, bring a little water to the boil in a deep frying pan which has a lid, add the smoked haddock, cover the pan and simmer very gently for 5-8 minutes, until the fish is just cooked. Pour away the water, discard the skin of the fish and flake the flesh.
When the rice is ready, remove from the heat and turn it into a bowl. Stir in the flaked fish and season with the cayenne pepper, and salt if necessary. Leave to cool.
If cooking immediately, preheat the oven to 190°C/375°F/gas mark 5. Gently melt the remaining butter and use some of it to grease a 600 ml/1 pint pudding basin. Cut off three-quarters of the puff pastry, form into a ball and roll out thinly, shaping it into a circle large enough to line the pudding basin and to generously overlap the edges.
Line the buttered basin with the pastry circle and brush with butter. Then roll out the last quarter of pastry very thinly into a piece big enough to line the basin with a second layer but this time not to overlap the edges. Brush the pastry lining with more melted butter and place the second piece of rolled-out pastry on top of the first layer. Now spoon in the cooled rice and fish mixture and fold the pastry edges in over the filling to cover it, brushing with melted butter where the pastry overlaps. Cook in the centre of the oven for 45 minutes, then turn out on to an ovenproof serving plate and return to the oven for 10-15 minutes, until golden brown.