Preheat oven to 350 degrees. Generously grease and flour a 10 cup bundt pan.
Add the shredded carrots and oil to a blender and process until smooth. Pour into a large mixing bowl.
Stir the sugar, pineapple, eggs, and vanilla into the carrot mixture.
In a medium bowl, whisk together the flour, cinnamon, nutmeg, cardamom, baking soda and salt. Add to the carrot mixture and stir to combine. Fold in the walnuts.
Spread the batter in the prepared pan and bake for 50-60 minutes, or until a tester inserted in the center come out clean.
Cool for 10 minutes in the pan before turning onto a wire rack to cool completely.
Meanwhile, make the frosting by beating the cream cheese and butter in a medium bowl with an electric mixer until smooth.
Beat in the lemon juice and vanilla. Gradually mix in 3 cups of the powdered sugar and mix until smooth. Add additional powdered sugar for a thicker frosting. If desired, add heavy cream a tablespoon at a time to reach desired consistency.
Spread or pipe the frosting over the cooled cake, or serve the frosting on the side.