Cream together the butter and sugar in the bowl of a stand mixer for a full 3 minutes.
Scrape sides and add in vanilla and egg. Mix until combined.
Add flour and baking powder to the bowl. Mix slowly at first gradually getting faster until the dough comes together. The texture should be like Playdoh. Add a little flour or water if needed to get it to a soft, pliable consistency.
Turn out onto a floured surface. Use a rolling pin and roll until about 1/4 inch thick. (The cookies will not rise while baking, they will not get thinner while baking. Roll out to your desired FINISHED thickness.)
Use cookie cutters and cut out desired shapes. Transfer the cookies to a silicone lined cookie sheet.
Bake at 350° for 6-8 minutes or until the centers are puffy and no longer glossy. Pull the cookies out of the oven BEFORE they start turning brown. If they turn brown, the cookie will be dry and 'crackery' instead of soft and chewy.
Allow to cool completley before frosting.
To make the frosting, cream the butter until smooth. Slowly add in the powdered sugar 1 cup at a time, alternating with the liquid until everything has been added and the frosting is smooth. You can adjust the texture and thickness by adding a little more milk if you'd like it thinner or adding a little more powdered sugar if you'd like it thicker.
To frost the carrots, using orange frosting in a piping bag with a size 2 tip, use a horizontal zig zag motion starting at the top of the cookie, going down. Then use a green frosting in a piping bag with a size 2 tip and a vertical zig zag motion for frost the carrot tops.
When gathering up the dough scraps, wet your hands and then 'knead' the dough until it is soft and playdoh like again. This dough is great to work with, there is no such thing as over kneading this dough!