In a medium bowl, combine the flour, baking soda, salt, cinnamon, ginger, nutmeg and cloves. Set aside.
To the bowl of an electric mixer, add the butter, brown sugar and granulated sugar. With the paddle attachment, cream together on medium speed for 2-3 minutes, until the butter and sugars are fully incorporated. Add the eggs and mix on medium speed until fluffy, about one minute. Scrape the sides of the bowl as needed.
On low speed, gradually add in the flour mixture and mix until just combined. Avoid over-mixing. The cookie dough will be thick. Add the carrots and walnuts (optional) and mix until just combined.
Cover bowl with plastic wrap and refrigerate for 30 minutes.
Preheat oven to 375°F. Prepare baking sheet by lining with silicone baking mat or parchment paper.
Remove cookie dough from the refrigerator. Using a cookie scoop, divide cookies into 2 Tablespoons in size and place 2 inches apart on the prepared baking sheet.
Bake for 8-10 minutes, until the edges start to brown and the tops of the cookies are set.
Allow cookies to cool on the baking sheet for 10 minutes before continuing to cool on a wire rack.
While cookies are cooling, make the Cream Cheese Frosting. With an electric mixer, whip together the cream cheese, butter, vanilla extract and powdered sugar until smooth. Add enough milk to thin it to a spreadable texture.
Spread cream cheese frosting on top of each cookie. Add more chopped walnuts if desired. Enjoy!