Melt butter or ghee in a saucepan over medium heat. Add onion and a good pinch of salt, and cook, stirring often, for 6-7 minutes until softened.
Add cumin seeds, turmeric, pepper, cinnamon stick, bay leaf, cardamom pods and cloves, and cook, stirring for 1 minute. Add the basmati rice, stir for a further 1 minute. Pour in stock and bring to the boil.
Once boiling, using a metal spoon, stir briefly to loosen any rice from the base of saucepan, cover with a tight fitting lid, reduce heat to very low (I use a simmer mat as well) and cook for 15 minutes, without removing the lid. *DON'T BE TEMPTED TO CHECK IT. DO NOT UNCOVER!
Remove saucepan from the heat and set aside for at least 10 minutes to finish steaming. DO NOT OPEN LID. Fluff with a fork before serving. If you wish, you may remove the whole spices. They generally come to the surface so this is easy to do. Garnish with coriander if desired and serve with your favourite curry. Enjoy :)