Preheat oven to 350 degrees Fahrenheit. Grease and flour two 9-inch round baking pans. Set aside.
In a medium bowl, whisk together the flour, baking powder, baking soda, cinnamon, nutmeg, cloves, and salt. Set aside.
Peel carrots, if desired. Trim the ends of the carrots. Grate or shred carrots with a food processor or by hand.
In the bowl of a stand mixer fitted with the paddle attachment, beat the granulated sugar, brown sugar, and eggs on medium-high speed until thoroughly combined.
Reduce speed to medium and add oil in a slow, steady stream while mixer is running. Increase speed and mix until pale in color.
Add the crushed pineapple and shredded carrots. Mix until incorporated.
Fold in dry ingredients by hand, just until there are no more streaks of flour, being careful not to over-mix.
Pour batter evenly into the prepared pans and bake until a toothpick inserted into the center of the cake comes out clean. Start checking after 30 minutes, but may take up to 45.
Allow cakes to cool for about 10 minutes in the pan, and then invert them onto a cooling rack. Cool completely. (Optional: Double wrap cakes in plastic wrap and freeze for several hours. Makes it easier to frost without crumbs.)
MAKE CREAM CHEESE FROSTING: Place cream cheese in a large bowl. Using a hand mixer, beat until smooth.
Gradually add the butter 2 Tablespoons at a time, and continue beating until smooth and well-blended.
Add powdered sugar and vanilla all at once. Blend until combined and smooth. (Don't beat too long or the frosting will be too soft. If this happens, place the frosting in the refrigerator or freezer until it firms back up.)
Frost cake as desired. Store cake covered in the refrigerator. (I have a cake container, which is really nice, but plastic wrap works too; just keep it loose around the cake.)