First, get the oven and pan ready. Set your oven to 350°F (175°C). Grease your baking pan well and lightly dust it with flour, or line it with parchment paper so the cake doesn’t stick.
Next, mix the dry ingredients. Take a large bowl and whisk together the flour, baking soda, cinnamon, ginger, and salt until everything is evenly combined. Set this bowl aside for later.
In a separate bowl, prepare the wet ingredients. Whisk the eggs and sugar together until the mixture looks smooth and well blended. Slowly pour in the oil while whisking. Add the vanilla extract and the yogurt or mayonnaise, if you’re using it, and mix until fully combined.
Now add the carrots and tropical ingredients. Stir in the grated carrots, crushed pineapple, shredded coconut, and macadamia nuts. Mix gently so everything is evenly distributed.
To make the batter, slowly add the dry ingredients to the wet mixture. Stir just until everything comes together. Be careful not to over mix, as this can make the cake dense.
Pour the batter into the prepared pan and spread it out evenly. Place it in the oven and bake for 40 to 45 minutes. The cake is done when a toothpick inserted into the center comes out clean.
Once baked, take the cake out of the oven and let it cool in the pan for about 10 to 15 minutes. After that, carefully remove it from the pan and place it on a cooling rack. Let it cool completely before adding the frosting.
For the frosting, beat the cream cheese and butter together until smooth and creamy. Gradually add the powdered sugar, one cup at a time, mixing well after each addition. Stir in the vanilla. Once the cake is completely cool, spread the frosting evenly over the top.