Preheat oven to 350°F (175°C) and line a 12-cup muffin tin with cupcake liners.
In a bowl, whisk together flour, baking powder, and salt; set aside.
In a large bowl, cream softened butter and granulated sugar until light and fluffy, about 3–4 minutes.
Add eggs one at a time, mixing well after each addition, then stir in vanilla extract and rosewater.
Alternately add dry ingredients and milk to the wet mixture, beginning and ending with dry ingredients; mix until just combined.
Gently fold in the finely chopped pistachios.
Divide batter evenly among liners, filling about two-thirds full.
Bake for 18–20 minutes or until a toothpick inserted in the center comes out clean.
Cool the cupcakes in the pan for 5 minutes, then transfer to a wire rack to cool completely.
Beat softened butter until creamy and smooth for the buttercream.
Gradually add powdered sugar, one cup at a time, beating well after each addition.
Add rosewater, vanilla extract, salt, and optional pink food coloring; beat until fluffy and smooth, about 2–3 minutes.
Pipe or spread the rose buttercream onto cooled cupcakes.
Sprinkle crushed pistachios on top and garnish each cupcake with an edible rose petal.