Heat frying pan. Tip in 2 tsp fennel seeds. Toast for 2 mins till fragrant. Tip into a bowl. Crush the cardamom pods in a mortar and pestle. Discard the husks. Crush the seeds to a powder.
Peel the garlic, ginger, turmeric and shallots. Roughly chop them. Halve the chilli and flick out most of the seeds for a milder curry, or leave them in for more heat. Chop the chilli. Roughly chop the coriander stems. Set the leaves aside.
Add all the prepared ingredients and half the toasted fennel seeds to a food processor with 1 tbsp oil. Blitz till smooth. This is your curry paste.
Rinse the rice under cold water and tip it into the pan. Add a pinch of salt. Cover, bring to the boil, then turn the heat down. Simmer for 25 mins till all the water is absorbed. Take off the heat. Set aside, lid on, to steam in the pan.
Finely chop the tomatoes. Peel the sweet potato. Chop it into bite-sized chunks. Heat a deep frying pan or wok. Scrape in the curry paste and fry for 2 mins. Add the chopped tomatoes and cook for 5 mins, stirring now and then. Add the crushed cardamom seeds.
Add the sweet potato and stir to coat in the spiced tomatoes. Pour in the coconut milk. Fill the tin with cold water and add that too. Place a lid on the pan and simmer for 10 mins. The sweet potato should be tender when pierced with a knife. If not, cook a little longer.
Add the crab to the curry. Stir and cook for 2 mins to warm the crab. Zest and juice half the lime. Add it to the curry. Taste and season. Add more lime juice to taste.
Spoon the rice into shallow bowls. Top with the golden crab curry. Top with the toasted fennel seeds and coriander leaves.