Start by washing the rice thoroughly twice or thrice, until the water runs clear. Soak this for about 2-3 hours.
In a pot, heat the oil and saute the whole spices along with the onions and garlic, until they all become fragrant.
Add the rice and saute for a few more minutes.
Next, add in the turmeric, salt, butter and the stock along with ½ cup of water, and stir to combine.
Bring to a boil and then turn the heat down. Bringthis to simmer for 10-12 minutes, while stirring the rice gently. Remember to reduce the heat to low until the rice cooks.
Let it cool down and then fluff with a fork and serve.
Notes
The key to getting the rice light and fluffy and perfect every time is to have the perfect water (or, in this case, stock) to rice ratio.
Using more than the needed amount of water will make the rice mushy and sticky.
Another important point to note is to make sure you fluff the cooled rice with a fork to help the grains separate and keep them from clumping with each other.