Preheat oven to 375°F. Line a muffin pan with 12 muffin liners.
In a medium mixing bowl, stir together the flour, baking powder, baking soda, and salt. Set aside.
In a large mixing bowl using an electric hand mixer or a stand mixer, beat the butter and sugar at medium speed until light and fluffy. Add the eggs, orange extract, vanilla extract, orange juice and orange zest. Beat on medium until no lumps of butter remain. Gently fold in half of the flour mixture until combined, followed by 1/4 cup of buttermilk, the remaining flour mixture, and then the remaining 1/4 cup buttermilk.
Divide the batter between the liners, filling them about 2/3 full. For the all-purpose version, bake for 15-17 minutes or until a toothpick inserted in the center comes out clean. For the gluten-free version, bake for 17-19 minutes.
Immediately remove the cupcakes from the pan and let them cool completely on a wire rack before frosting.
To make the frosting, beat the butter on high speed until fluffy. Add the cream cheese, vanilla extract and salt and beat until well combined.
Gradually beat in the powdered sugar on low. If you add all the sugar at once, the frosting may turn out runny. Frost the cooled cupcakes.
Store unfrosted cupcakes at room temperature for 1 day and refrigerate frosted cupcakes for up to 2 days. Let come to room temperature before serving.