Put the rice in a bowl with cold water to cover and leave it to rest for at least 30 minutes.
In meantime, in a large non stick pan, fry onions with butter until golden. Add all spices and fry for 1 minute.
Drain rice and add to pan. Fry on a high heat until it gets some colour, about 4 minutes, stirring often.
Add the boiling water with a pinch of salt. Leave to boil, and then put the lid on or a piece of wrapping foil (so it's steaming) on the lowest heat possible setting. Steam until the rice is tender, about 8 minutes.