Place saffron threads into boiling water, set aside to steep.
Melt the butter in a large pot over medium-high heat. Stir in the onions, and cook until golden, about 5 minutes. Season with cinnamon, cloves, ginger, cumin and cardamom. Cook for 3 to 4 minutes to release the flavour, stirring constantly.
Pour in the rice and cook for 10 minutes, stirring constantly. Add the yoghurt, saffron water and salt. Bring to a simmer, then reduce heat to low. Cover pot with a cloth folded into 4 layers. Place a lid over the cloth and cook until the rice is done, about 20 minutes. Remove the cinnamon, cloves and cardamom before serving.