Preheat oven to 350F.
Shred the carrots first and set aside. The easiest way to do this is in a food processor.
Sift all the dry ingredients together in a bowl. This include the flours, baking powder and soda, spices, and salt.
In a large bowl or stand mixer, combine all of the wet ingredients and sugar- eggs, applesauce, oil, vanilla, orange juice and zest, and sugar. Beat on medium until well combined.
Add the dry ingredients to the wet and beat on low until just combined. Use the paddle attachment if using a stand mixer. If the batter seems way too thick, add 1-2 tablespoons of milk until you have a smooth batter. I find this really depends on the brand of flours that you are using, so you may not need the milk if you are using the same brands I have linked.
Fold in the carrots and walnuts/raisins, if using.
Let batter sit while you line a 8x8 or 9x9 baking dish with parchment paper.
Evenly spread batter into baking dish and bake for 35-40 minutes, until a toothpick comes out with a few crumbs on it.
Let the cake cool completely before icing.
While cake bakes and cools, make the frosting. For the sweet potato frosting, blend all ingredients together in a high speed blender or food processor. Let set in the fridge for at least 3 hours until spreadable, but holds its form.
If making the cashew frosting option, be sure to read the recipe as it does require chilling time and should be made in advance.
To make the third frosting option, combine all ingredients together in a bowl and mix well until you have a thick, spreadable icing. If the icing is too runny for any reason, add more powdered sugar.
Once cake is cooled, remove from pan and frost. I like to add more crushed walnuts on top, but decorate as desired. Slice, serve, and enjoy!