Rinse the rice until the water runs clear.
Combine the rice and water in a saucepan and cook over medium heat until most of the water is absorbed.
Pour in the milk and reduce the heat to low.
Simmer gently for 30–40 minutes, stirring occasionally.
Add the sugar and continue cooking until the pudding thickens.
Stir in the rose water, cardamom, and butter, if using.
Cook for another 5 minutes.
Remove from the heat and let it rest for 10-15 minutes.
Garnish with pistachios, cinnamon, and dried rose petals before serving.