Cover rice with cold water and set aside to soak for 30 minutes.
Soak saffron threads in 2 tablespoons boiling water.
Melt butter in a large saucepan over medium heat; add cardamom, cloves and cinnamon and fry 2 minutes, stirring occasionally. Stir in onion and saute, stirring occasionally, until golden brown. Stir in the rice, reduce heat to low and simmer for 5 minutes, stirring constantly.
Pour in the boiling broth and stir in the salt and saffron.
Cover and cook until rice is cooked and all liquid is absorbed, about 40 minutes.