Stir all the spices together in a small bowl and set aside.
Peel and thinly slice the onions. Grate the garlic into a mixing bowl and add ½ the spice mix, the juice of the lime and a glug of olive oil. Season generously with salt and pepper and give it a good mix. Toss the fish through this mixture and set aside in the fridge to marinate.
Wash the rice until the water runs clear.
Set a frying pan with high sides over a medium heat with a generous drizzle of olive oil. Once hot, add the onions and cook, stirring occasionally, for 7-10 mins until golden brown. Transfer the onions to a plate.
Turn the heat down to medium and add another drizzle of olive oil. Add the curry leaves and cook until they splutter then stir in the remaining spice mix, rice and ½ the browned onion. Cook for a couple of seconds then pour in the stock. Bring to the boil then place a lid on, turn the heat down to low and let the rice cook undisturbed for 12 mins.
After 12 mins, scatter the peas over the rice and top with the fish. Place the lid back on and leave it on a low heat for 10 mins to finish cooking. Don’t remove the lid until finished. Heat the grill to high.
Meanwhile, make the yoghurt. Coarsely grate the cucumber and squeeze out as much water out as possible. Get the yoghurt in a bowl then stir through the grated cucumber and garam masala. Taste and season with salt.
When the fish cooking time is up, remove the lid and pop the pan under the grill for 3-4 mins until the fish has started to colour and is fully cooked through.
Fluff the rice using a fork and spoon into bowls. Top with the fish, a scattering of the remaining browned onions and a dollop of cucumber yoghurt. Finish with some coriander.
