Tip the soaked rice into a sieve and leave to drain. Peel and de-vein the prawns, saving the heads and shells. In a bowl, mix the peeled prawns with the garam masala, a quarter-teaspoon of turmeric, two cloves of crushed garlic, a tablespoon of olive oil, half a teaspoon of salt and a good grind of pepper, then refrigerate.
Put the onion wedges in a large saucepan for which you have a lid, then add the prawn heads and shells, lemon halves, head of garlic, stock, one cinnamon stick and a teaspoon of salt. Bring to a boil on a medium-high heat, then lower the heat to medium-low, cover the pot and simmer for 25 minutes. Strain through a sieve set over a saucepan; discard the solids.Measure out 650ml of the liquid and keep warm (reserve any excess prawn stock for another dish).
On a medium-high flame, heat two tablespoons of oil in a large saucepan for which you have a lid. Add the chopped onion, green pepper, cardamom and remaining cinnamon stick, and cook, stirring occasionally, for about eight minutes, until the onion is soft and lightly browned. Add the remaining crushed garlic, ginger and green chilli, and cook for a minute more, until fragrant. Add the spices, the remaining half-teaspoon of turmeric, tomatoes, 35g coriander and two tablespoons of the prawn stock, and cook, stirring occasionally, until the mixture has thickened – about seven minutes.
Stir in the rice, to coat, then add the remaining prawn stock, one and three-quarter teaspoons of salt and a good grind of pepper. Bring to a boil, cover tightly first with foil and then with the lid, turn down the heat to low and cook for 15 minutes. Turn off the heat, keeping the lid on, and leave to rest for 15 minutes. Uncover, dot with 20g butter, cover again, and leave to sit for 10 minutes more, until the butter has melted through the fluffy rice.
Meanwhile, heat a tablespoon of oil and the remaining 15g butter in a large saute pan on a medium-high flame. Add the sliced onion and cook, stirring often, until soft and deeply browned – about 12 minutes. Transfer to a bowl, return the pan to a high heat and add the remaining tablespoon of oil. In two batches, add the marinated prawns and cook until browned and cooked through – about three minutes per batch. Transfer the prawns to a bowl and mix through the dill, chilli, lemon juice and remaining coriander.
Spread the rice on a large platter, top with the browned onions and then the prawns, and serve warm.