Warm the milk just enough to a level where you can melt the butter in it, add the butter to the milk and whisk a little to melt.
Add the saffron strands and cardamom powder to it and let it stand for sometime.
In a separate bowl, add the sugar and yeast and pour the warm water on it. Let it stand for 10 minutes for the yeast to activate.
Add the activated yeast mixture, the milk mixture and the beaten egg to the bowl of your mixer and mixture at medium speed for 1 minute using the paddle or the creaming blade.
Add flour in two batches running the mixer at low speed when you add the flour and making it to medium speed for 1 minute after that,
Change the blade to the kneading blade and knead on medium speed till you have a smooth dough, Please don't over knead the dough.
Alternatively, you can knead the dough with your hands too, knead just enough to form a nice smooth dough, I think it would take about 7-10 minutes.
Make a ball of the dough and keep in a large greased bowl for raising.
Leave it for about an hour or till it has doubled in size (mine took about 45 minutes)
Roll into a thickness of about 3/4 inch and cut using doughnut cutters or two concentric round cookie cutters.
Leave for proofing in a dark place till they double in size and bounce back when you touch them. Mine took about 1.5 hours.
Heat oil in a pan and deep fry for about 30secs - 1 min on each side.
For the topping, whisk together all ingredients till just about mixed. Dip your doughnut in the liquid on one side and sprinkle one of the above toppings or any topping of your choice or eat it just like that.