Preheat the oven to 350°F. Spray two 8-inch cake pans (with sides that are at least 2 inches tall) with baking spray. Line each pan with a circle of parchment paper. Set aside. Place a piece of parchment paper or foil on a work surface. Place a cooling rack onto the parchment (or foil).
Place the crushed pineapple in a fine-mesh strainer and push on it with the back of a spoon until all of the juice has been removed. Set it aside (in the strainer) to continue draining while you prepare the batter.
If using bagged carrots, transfer them to a large cutting board and, using a long sharp knife, cut through them in several directions until all the shreds are fairly finely chopped. This should take about 1 minute. Set aside.
Combine the oil, sugars and vanilla in a large bowl. Whisk well to combine. Add the eggs, one at a time, whisking well after each addition.
Add the cinnamon, ginger, cloves, baking powder, baking soda and salt to the batter and whisk well until everything is well incorporated.
Add the flour, stirring until well blended.
Add the carrots, coconut and well-drained pineapple and stir until everything is incorporated. Divide the batter between the prepared pans.
Bake the cakes for 35 to 45 minutes, or until a cake tester inserted into the center comes out clean, or with a few moist crumbs clinging to it. You can also check the temperature (most accurate) with an instant thermometer. The temperature in the center of the cake should be 200-210˚F when perfectly done. (If you're using a 9-inch pan, the baking time will be slightly less. Check it at 32-35 minutes, then every few minutes after that.)
Cool in the pans for 10 minutes then turn out onto the prepared cooling rack and brush all over with the glaze. You can let the cake cool and serve it like this or add the optional brown butter caramel icing (directions below). Just make sure to allow the cake to cool completely before adding the brown butter caramel icing.