Preheat oven to 350F/180C. Butter a 9x5-inch loaf pan (or use a smaller pan, such as 8½ x 4¼-inch, for a higher loaf).
In a large bowl sift together flour, baking soda, baking powder, salt, cinnamon, nutmeg, and cloves. Set aside.
In a mixer bowl fitted with paddle attachment, beat together eggs, granulated sugar and brown sugar on medium-high speed until light and fluffy, about 2 minutes. On low speed and with the mixer running, add the oil slowly and beat until combined. Beat in vanilla extract until combined, then turn off mixer. Fold in (by hand) carrots until combined. Fold in dry ingredients just until combined. Don’t overmix. Fold in nuts.
Pour the batter into prepared loaf pan. Bake for 40-50 minutes or until a toothpick inserted into the center of the cake comes out clean. Allow cake to cool completely.
To make the frosting: In a mixer bowl fitted with the paddle attachment, beat the cream cheese, butter and vanilla extract on medium speed for 1 minute until creamy and combined thoroughly. Add powdered sugar and beat until the mixture is fluffy and smooth. If the frosting is too thin, add more powdered sugar until desired consistency is reached. You can add pinch of salt or lemon juice to cut the sweetness. Spread frosting over the top of the cooled cake. Decorate with walnuts or pecans if desired. Store cake in an airtight container in the refrigerator for up to 4 days.
Cake is best served at room temperature.