Preheat your oven to 350F and spray or line a cupcake baking sheet with liners.
Whisk together the flour, baking powder, baking soda, cardamom, nutmeg, cinnamon, and salt in a large mixing bowl.
In another mixing bowl, combine the oil, brown and cane sugars, vanilla, applesauce, and the non-dairy milk. Whisk these wet ingredients well, then add them to your dry ingredients. Use a spatula to fold the batter together. When the batter is almost mixed (a few streaks of flour are OK at this point), add the grated carrot and walnuts. Continue folding the batter until it's just combined and the carrots are distributed evenly. Try not to over-mix.
Use a muffin scoop or a 1/3 cup measuring cup to transfer the batter into the cupcake liners or prepared pan. Bake for 20-25 minutes, or until the tops of the cupcakes are domed and set and they're just starting to turn golden at the sides. Allow the cupcakes to cool completely before frosting, about 2 hours.
To prepare the frosting, place the butter and cream cheese in a stand mixer fitted with the paddle attachment. Alternatively, you can use a handheld mixer to prepare the frosting. Mix on medium speed for 3 minutes, or until the butter and cream cheese are very fluffy. Stop the mixer, then add the sugar. Mix the frosting on low speed for 2 minutes. Then, beat on medium speed for another 2-3 minutes, or until the frosting is very, very fluffy. Beat in the white vinegar, then stop the mixer.
Transfer the frosting to a piping bag and pipe over the cupcakes to decorate. You can also use a small, offset spatula to decorate by hand. Serve or store the cupcakes till you're ready to enjoy.