Preheat oven to 350 degrees Fahrenheit. Lightly grease your donut pan - you may prefer using two standard donut pans (you can use a muffin tin, but then they won’t be donuts, and the texture may change).
In a large bowl, mix the flour, baking powder, spices, and salt until combined.
Then, in the bowl of a stand mixer, combine the melted butter, sugar + extracts. Mix until well combined and the texture is smooth.
Slowly, alternate adding the sour cream + flour mixture to the wet ingredients (starting + ending with flour) until just combined. Do not overmix, or the donuts will be tough + dry.
Using a piping bag, pipe the donut batter into the donut pan. Fill them about 2/3 full. Bake for 8-10 minutes. They are done when the toothpick comes out clean with a few crumbs. Let the donuts cool.
While the donuts are cooling, whisk together the powdered sugar, milk, vanilla extract, + cardamom spice until smooth. You can add food coloring, if desired.
The icing should be thick. You want it to nestle on top of the donuts, but not drip too much (but it shouldn't paste thick, either).
Fill your second piping bag with the frosting and pipe over the top of the cooled donuts. Alternatively, you can dip and twist them out of a bowl filled with the frosting. Both techniques work, so it’s whichever one you prefer. Finally, top with your favorite sprinkles (or skip if you prefer)!