Preheat the oven to 350°F and prepare a baking sheet by lining with parchment paper. Set aside.
In a large bowl, use a stand mixer or electric mixer on medium speed to beat together the butter, white sugar and brown sugar until light and fluffy.
Add the eggs and vanilla and continue beating until fully incorporated, set aside.
In a medium bowl, whisk together the flour, baking soda, baking powder, cinnamon and salt.
Carefully add the flour mixture to the wet mixture until fully mixed.
Adjust the speed of the electric mixer to low and add the carrots. If you want to add nuts, you can add ½ cup at this time. Continue mixing until fully incorporated.
Using a medium cooking scoop, drop tablespoon-sized dough balls onto the prepared baking sheet about two inches apart.
Bake for 10-12 minutes or until the cookies are cooked through.
Allow to cool before icing.
To make the icing:
In a large bowl, use an electric mixer to combine the butter and cream cheese.
Carefully add the confectioners' sugar, 1 cup at a time, until it is fully incorporated.
Add the vanilla and milk, using more or less to reach desired consistency.
Use the icing to first the cookies or drizzle on as a glaze. You can also color the icing and pipe a carrot on the cookies.