Pour the 1 cup of warm whole milk into a bowl. Sprinkle the packet of instant yeast on top of the milk. Let settle for about a minute.
Add in the 2 eggs, ⅓ cup of butter, 1 tsp of salt, and ½ cup of sugar. Then add the 4 cups of flour. With a rubber spoon or spatula, mix together ingredients until just combined. Let the mixture rest for about 5 minutes to allow the liquid to absorb into the flour. It will look crumbly at this point.
Knead the dough for five minutes, making sure to scrape the sides as you go. You may need to add ¼ cup more flour to ensure that the dough is the right consistency. It should be stretchy but not sticking all over the bowl and your fingers.
Butter or grease another bowl and transfer the dough to it. Cover with wax paper or a towel and let the dough rise in a warm area for 30 minutes.
While the dough is rising, prep the filling. In a bowl, combine the ½ cup of unsalted butter, 1 cup of brown sugar, 1 tbsp cinnamon, 1 ½ tbsps ginger, ½ tsp nutmeg, and ½ tsp all spice. Mix together with a spoon until evenly incorporated.
Sprinkle your counter top with a generous amount of flour. Place the dough onto the counter and sprinkle more flour on top of it. With a floured rolling pin, roll out the dough into a long rectangle, about 24x12. This does not have to be exact at all, just long enough to roll up and slice into several rolls. The dough should be thin but not so thin that it's challenging to roll.
Spread the gingerbread filling evenly on the dough. I find that using my fingers works best for this, but a rubber spoon would work too. I left about an inch or so of both short ends without filling, since we will be cutting those off (the very ends don't make very good rolls!)
Once spread, you are ready to roll. Starting at one long end, carefully roll the dough (like a jelly roll).
Using a non-serated knife, remove the ends (on both sides) that don't have filling. Cut the rest of the roll into 12 evenly sized rolls.
Add each roll into a 9X13 greased baking pan.
Cover the rolls with the wax paper or towel and let them rise for an additional 20 minutes. Meanwhile, preheat the oven to 375°.
Warm the ½ cup of heavy cream. It shouldn't be hot - microwave it for 20 seconds to take the chill off. Pour the cream over the rolls, making sure to drizzle some liquid onto each one.
Bake the rolls in the oven, uncovered, for 20 minutes. They should be just slightly brown and the pan will look a bit bubbly and wet from the cream.
While the rolls are baking or cooling, make the frosting. Combine the 4 oz of softened cream cheese, ⅓ cup of unsalted butter, ½ cup of confectioner's sugar and ½ tsp of vanilla extract in a bowl. Mix together with a spoon until everything is incorporated. Then add the ½ tsp of ginger and ½ tsp of cinnamon. Mix together.
Spread the frosting over the cooled rolls. Enjoy! Store leftovers in an airtight container.