Heat ghee in a heavy-bottom pan over medium heat.
When the ghee is hot, add semolina and fry till it turns light golden brown (10-12 minutes). Stir frequently to avoid the semolina from burning at the bottom of the pan.
Add cashew nuts, almonds, and raisins. Note – Add the nuts and dried fruits only when the semolina is half roasted. If you add them earlier, they will burn by the time semolina is fully roasted.
Fry until semolina turns nicely golden brown in color (10-12 minutes), stirring frequently.
Add water (or milk) and cook until all the water is absorbed and the semolina has softened (3-4 minutes). Stir continuously while cooking.
Add sugar and cook for 2-3 minutes until the sugar is melted and the ghee starts to ooze out from the sides of the pan (3-4 minutes). Stir frequently.
Add cardamom powder and mix well.
Remove the pan from the heat. At this stage, halwa will be of dropping porridge-like consistency but within 5-10 minutes, it will become firm and grainy in texture.
Transfer the halwa to a serving bowl and garnish with slivered dry nuts and dried rose petals. Serve hot or at room temperature.