Grind the cinnamon and cardamom to a fine powder.
Grind the garlic and ginger to a paste (add a few drops of water if necessary)
Also grind 2 onions to a coarse paste and keep aside.
Finely slice the remaining 3 onions; fry in ghee till golden brown, drain and keep aside.
Into the mince, add half of the cinnamon-cardamom powder, roasted gram flour, 1 tbsp ghee and salt to season. Knead well to ensure that all the ingredients are mixed well and the mince has a fine consistency.
Take small portions of the mince and roll into small balls (slightly larger than marbles). You will roughly get about 30 -35 balls. Heat ghee in a pan and fry the meatballs; keep aside. (Take care not to overcook or the meatballs taste dry)
To cook the rice, heat 1 ½ litres water. Season with salt and add the remaining cardamom-cinnamon powder. Add the washed rice and parboil; drain and keep aside.
In the same pan that the onions were fried (add more ghee only if necessary), add the onion and ginger garlic paste. Sauté on medium heat till the rawness disappears. Then add chilli powder and sauté till the ghee separates.
Add the fried meatballs to this and add 1 cup (250 ml) water. Cook till most of the water has disappeared. Taste and season with salt if necessary.
Meanwhile soak saffron in warm milk.
To finally assemble the dish, place a large deep bottom vessel on low heat and add half of the cooked rice. Then layer with the cooked koftas/meatballs, add half of the rose water and saffron milk. Then add the remaining rice followed by the remaining rose water and saffron milk.
Seal the edges (read description above for dum techniques) of the vessel and cook covered on low heat for about 20 minutes.
Open just before serving and garnish with fried onions.
Serve with a raita