In a stand mixer fitted with the whisk attachment, mix 2 cups of the flour with the granulated sugar, yeast, and salt on low speed until combined.
In a microwave-safe bowl, microwave the milk and butter until the mixture is warm to the touch and the butter is mostly melted, about 45 seconds.
Pour the milk mixture into the flour mixture. Add in the egg. Beat everything together on low speed until combined. Gradually increase the speed to high and beat for 2 minutes.
After 2 minutes, change to the dough hook attachment. Add in an additional 1 ½ cups of flour and knead on low speed until combined.
Add the remaining 1 cup of flour and knead on low speed until the dough starts to pull away from the sides of the bowl and forms a ball around the dough hook.
Increase to medium-low speed and knead until the dough becomes smooth and supple, about 10 minutes.
Transfer the dough to a large lightly-oiled bowl and cover the bowl with a dish towel or plastic wrap. Let rise in a warm place until the dough has doubled in size, about 1 hour.
In a medium bowl, add the softened butter, brown sugar, cinnamon and salt. Mix together until it makes a paste.
Turn the dough onto a well-floured surface. Roll it into a 12-inch long by 18-inch-wide rectangle.
Spread the filling all the way to the edges of the dough.
From the 18-inch wide side closest to you, roll the dough into a tight log. Cut the dough into 12 even rolls.
Place the rolls in a 9 x 13-inch pan lined with parchment paper. Cover and allow to rise in a warm place until doubled in size, about 1 hour.
Preheat the oven to 350°F. Bake the rolls until golden brown, about 30 minutes.
While the rolls cool, make the cream cheese frosting. Combine the cream cheese, butter, powdered sugar, milk, vanilla, and a pinch of salt. Beat until light and fluffy.
Spread the icing evenly over the slightly warm rolls.
