Cook the onion in the oil, in a deep saucepan with the cloves, cardamom pods, cinnamon stick, cumin seeds until the onion is slightly browned and soft. Keep the heat medium to low and stir frequently; this should take about 10 minutes.
Add the rice and move it about in the oily spiced onion until it is slicked and glossy, then pour in the stock and bring the pan to the boil. Cover the pan with a lid and cook over the lowest heat possible for 20 minutes.
Turn off the heat, take the lid off, cover with a kitchen towel and cover with the lid. You can leave the rice to rest like this for at least 10 minutes, and up to about 1 hour.
Fluff the rice before serving and garnish with cilantro!