Place warm water (about 100-110°F) into a measuring cup. (The easiest way to test the water is using an instant read thermometer, but if you don’t have one, think hot bathwater.) Add yeast, sugar and salt. Stir with a wooden spoon. Let rest until it bubbles, about 5 minutes.
Place proofed yeast in the bowl of a stand mixer fitted with the dough hook. Add egg and oil along with 1 cup of flour.
Start the mixer and then slowly another 1 ½ cups of flour, stirring in gradually. Run the mixture for about 5-10 minutes or until the dough is elastic. The dough will be slightly sticky and very soft. You may need up to 3 total cups of flour.
Turn the dough out onto a floured cutting and knead until smooth. Place the dough into a bowl that’s been sprayed with nonstick cooking spray. Let rest until doubled. Time will vary depending on room temperature. To rise faster, place the dough in a warm place.
Spray a 9x13-inch pan with nonstick cooking spray.
Make filling: Stir together brown sugar, cinnamon, ginger, and grated carrots in a small bowl.
Roll dough into a rectangle that is about 12x15”. To fill, spread with melted butter and sprinkle with filling. Roll up lengthwise. Make roll as tight as possible. Cut into one-inch pieces. Place in greased pan so that rolls just touch each other. (You can slice it into 9-12 slices depending on how big you want your rolls.)
At this point you have two options: 1. Let rise until doubled (about 20-30 minutes), then bake as directed below or 2. Cover tightly with plastic wrap and chill overnight. Let the rolls come to room temperature before baking.
Preheat oven to 350°F. Bake approximately 20-25 minutes.
Make the frosting: beat cream cheese and butter until smooth, then mix in powdered sugar slowly. Mix until crumbly, then add vanilla and beat until smooth. Spread over warm or cooled rolls.
Store loosely covered in refrigerator for up to 2 days. Rolls can be frozen before baking or after, or even after frosting.