To ensure you get lovely fluffy rice, wash it in several changes of cold water, then leave it to soak for about 30 minutes in fresh cold water. If you don't have time for this, place in a sieve and wash under running cold tap water for a minute or so.
Cook the onion in the butter for around 5 minutes until softened, not brown.
Add the spices, saffron, and bay leaves, and cook for 2-3 minutes more.
Add the rice and stir until the grains are coated in the butter before stirring in the stock or water, and salt.
Bring to a boil and then cover with a tight-fitting lid. If the lid isn't very tight, cover the pan with aluminum foil before putting the lid on. Turn the heat down low and leave to cook for 10 minutes before turning off the heat. Don't remove the lid, just leave the rice to continue cooking in the pan for about 5 minutes or until you're ready to serve.
The rice should have absorbed all the water and will just need fluffing up with a fork. Add a knob of butter before serving. (A knob of butter is about 2-3 tablespoons.)
Notes
TIP: No peaking while rice is cooking or the process will be interrupted and the rice may be undercooked.