Preheat oven to 350 degrees F and line 2 cupcake trays with cupcake liners.
In the bowl of a stand mixer, cream together the butter and the sugar.
Add eggs, milk, sour cream and extracts.
Mix the flour, salt, baking powder and baking soda in a separate bowl and then mix into wet ingredients.
Chop the pistachios in a food processor, and reserve 3 tablespoon for the frosting. Add remaining chopped pistachios to cupcake batter and mix until fully incorporated.
Fill cupcake liners ¾ full, and bake for 13-15 minutes. Test with a toothpick and make sure it comes out clean.
Remove from oven, and cool completely before frosting.
Instructions for Almond Pistachio Frosting:
In your KitchenAid mixer, beat the softened butter with the paddle attachment until it is fluffy and lightened in color.
Add the icing sugar and heavy cream and continue beating until it is smooth and creamy- about 3-4 minutes. Scrape down sides as needed.
Fold in the finely ground pistachios and almond extract. Mix until evenly distributed throughout the buttercream.
If the buttercream is too thick, add a little more cream, one teaspoon at a time, until you reach the desired consistency. If it is too thin, add a bit more powdered sugar.
If using unsalted butter, sprinkle in a pinch of salt and mix.
Add frosting to a piping bag and pipe on top of each cupcake.
Notes
Store in an airtight container at room temperature for 1–2 days or in the fridge for up to 5 days. Bring to room temperature before serving for the best flavor and texture.