Place a wide, heavy pan on medium heat. Add ricotta, condensed milk, milk powder, ghee, cardamom, saffron milk if using, rose water if using, and salt if using. Stir constantly until the mixture looks loose and glossy, about 2 minutes.
Reduce heat to low-medium. Cook, stirring often and scraping the pan bottom, until the mixture thickens noticeably, about 8 to 10 minutes. It will still look pourable.
Continue on low-medium, stirring continuously, until the mass pulls away from the sides and a spatula pressed flat on the surface lifts away clean with no wet streak, about 12 to 18 minutes more (22 to 28 minutes total cook after the first heat step).
Immediately scrape into the lined pan. Spread evenly with an offset spatula. Tap the pan once on the counter to release air pockets.
Sprinkle pistachios and rose petals on top while still warm. Press gently so they stick.
Cool on the counter 20 minutes, then refrigerate uncovered until firm enough to slice, at least 2 hours (3 hours for cleaner edges).
Lift out using parchment overhang. Wipe the knife clean between cuts. Cut into 18 squares.