Preheat the oven to 350°F. Grease and flour two 8 or 9-inch-round pans.
In a medium bowl, beat the eggs and sugars with a stand or hand-held electric mixer on medium speed for 3 minutes, or by hand with a whisk, until thick. Add the oil, orange juice, and vanilla and mix on low speed or gently by hand to combine.
In a separate medium bowl, whisk the flour, whole-wheat flour, baking powder, salt, and cinnamon. Add half of the dry ingredients to the bowl with the eggs and sugar and mix on low speed or gently by hand to combine. Add the rest of the flour mixture and mix until just combined.
Using the side of a box grater, grate the carrot into small threads, about ¾ inch long. Add to the batter and mix in well.
Divide the batter between the 2 prepared round pans. Bake for 40 minutes, or until a skewer inserted in the cakes comes out clean. Cool in the pans for 10 minutes and then turn out onto a rack to cool completely. While the cakes are cooling, take the cream cheese out of the refrigerator so it will soften.
When the cakes are cool, use a sharp knife to trim the sides of the cake so that they are straight. Slice each cake in half to create four layers.
To make the frosting: Place the cream cheese in a large bowl and beat with a hand-held or stand electric mixer at high speed or by hand with a whisk to combine. Add the confectioners’ sugar in three parts, mixing in each addition on medium speed or vigorously with a whisk completely before adding the next one. Add the soy milk and beat for 30 seconds until the frosting looks creamy.
Cut out a cardboard circle that’s about an inch or so larger than the diameter of your cake. Place the top of the first cake top-side down onto the cardboard circle on a serving plate. Scoop up about ¾ to 1 cup of the frosting and place in the center of the cake. Working from the center of the cake toward the outside edge of the cake, use a silicone spatula to spread the frosting back and forth across the top of the cake (you will do the sides later). Use more icing if necessary; if you spread too little, you will pick up crumbs and then have to clean them off.
Place the bottom of the first cake, bottom-side up, on top of the icing. Add another 3/4 to 1 cup of icing and spread. Place the top of the second cake, top-side down on top of the icing. Add icing to cover. Finally, place the bottom of the second cake, bottom-side up, on top of the icing. Look at the cake to see if it is even. If not, press a little on any side that seems too high.
Take some icing and cover the top of the cake. Next, cover the sides, scooping up about 3 tablespoons of icing each time. After the cake is evenly covered, pour boiling hot water over a long, flat metal spatula to heat it. Dry it slightly and use to smooth the cake’s top and the sides. If you have a pastry bag and a star tip, you can place any leftover icing in the bag and make a design of your choice on the cake. I like to make a border around the edge and then lines across the cake. If you want to avoid the final step of smoothing the icing altogether, sprinkle finely chopped walnuts or pistachios on the top and sides.
Place in the refrigerator until serving.