Pat the monkfish pieces dry on kitchen paper. Mix together all the marinade ingredients, rub them over the fish and set aside for 30 minutes.
Heat the oil in a large frying pan, add the monkfish pieces and fry for a minute or two, until golden brown (cook them in batches if necessary, so as not to overcrowd the pan).
Remove the monkfish from the pan, add the sliced onions to the oil and sauté until golden brown. Add the ginger, garlic and green chilli pastes and sauté for a minute, then stir in the chopped tomato and cook until soft.
Add the yoghurt, coconut milk, coriander and salt and simmer for about 5 minutes. Now return the monkfish to the pan, add the garam masala and mussels, mix well and remove from the heat.
Wash the rice, then leave it to soak in a large bowl of cold water for 20 minutes.
Meanwhile, heat half the ghee or butter in a large pan, add the cardamom, cinnamon, cloves, peppercorns and bay leaves and stir until they release their fragrance.
Add the onion and sauté until golden brown. Add the water and salt and bring to the boil. Drain the rice and add to the pan, reduce the heat and cook for 6–8 minutes, until the rice is about three-quarters done.
Put half the seafood mixture in a heavy-based casserole. Drain the rice and spread half of it over the seafood. Repeat with the rest of the seafood and rice. Sprinkle the remaining ghee or butter on top of the rice and cover the casserole with a tight-fitting lid.
Seal the sides with foil, leaving a small gap for steam to escape. Cook over a high heat for 5 minutes, until you see the steam through the gap.
Reduce to a very low heat and cook for another 10 minutes. Remove from the heat and
leave to stand for 5 minutes.
Carefully remove the lid.