Preheat the oven - Preheat the oven to 350°F (175°C) and line a muffin pan with cupcake liners.
Make the batter - In a mixing bowl, whisk together the flour, baking powder, and salt. In another bowl, cream the butter and sugar together until light and fluffy. Beat in the eggs one at a time, then stir in the chopped pistachios and rosewater. Gradually add the dry ingredients to the wet mixture, alternating with the milk, and mix until just combined.
Bake the cupcakes - Fill the cupcake liners two-thirds full with batter and bake for 20-25 minutes or until a toothpick inserted in the center comes out clean. Remove from the oven and let cool completely on a wire rack.
Make the frosting - In a small saucepan, heat the cream over low heat until it comes to a boil. Remove from the heat and add the saffron threads, stirring until dissolved. In a mixing bowl, beat the cream cheese until smooth and creamy. Gradually add the powdered sugar, beating until well combined. Gradually beat in the saffron cream, one tablespoon at a time, until the frosting is light and fluffy.
Frost the cupcakes - Using a pastry bag or ziplock bag, pipe the frosting onto the cooled cupcakes. Garnish with dried rose petals or chopped pistachios, if desired.