Add a tablespoon of oil to a saucepan over medium heat and fry the bay leaves, cloves, cinnamon, allspice berries and cardamom for 2 minutes.
Add the onion, coriander root, ginger and garlic and cook for 5 minutes or until onion is soft then add the cumin and coriander seeds and cayenne and cook for a further 2 minutes.
Add the tomatoes and stir for a minute. Pour in the coconut milk and stock, bring to a simmer and allow to simmer for 15 minutes.
Add the fish to the curry and place a lid on the pan. Turn off the heat and let the fish sit in the liquid for 8 to 10 minutes.
Serve the curry on top of the cooked rice and garnish with coriander leaves and a squeeze of lemon or lime juice.
Make a meal of it
If you're planning on using this fish curry recipe for a dinner party you could turn it into a Mexican themed meal by serving with Mexican roast tomato tortilla soup as a starter and raspberry buñuelos as a dessert.
Recipe taken from Mexican Craving by Ben Milbourne, available from New Holland Publishers,