Scald the milk in a small saucepan by heating it over medium-high heat until tiny bubble can be seen around the edges of the pan and the milk is steaming. Remove from heat and pour into a large mixing bowl of an electric stand mixer fitted with a dough hook attachment.
1 ¼ cups whole milk
Add water, butter, and sugar to the hot milk. Let cool until the butter is mostly melted and the milk is just warm to the touch.
¼ cup water, ¼ cup (57g) salted butter, 3 Tablespoons granulated sugar
Add the yeast and let it proof for about 5 minutes until foamy (even if using instant yeast - it will help the roll dough rise better and faster in this recipe by activating it first).
1 Tablespoon instant or active dry yeast
Add the egg, salt, and 4 cups of the flour, mixing and continuing to add a little more flour only as needed, until the dough starts to come together in a ball and begins to clear the sides of the bowl. Resist the urge to add too much flour because you want your rolls to be nice and fluffy and soft.
1 large egg, 1 teaspoon table salt, 4 ¼ to 4 ½ cups (604g to 639g) all-purpose flour
Continue to knead with the dough hook for 5-7 minutes until the dough is soft and smooth. Cover the bowl with plastic wrap or a clean damp cloth and let the dough rise in a warm spot until doubled in size (about an hour).
Spray a 9x13-inch pan with cooking spray. Punch down the dough and turn it out onto a lightly greased surface.
Cut the dough into 12 evenly sized pieces. They should each be around 3 to 3 ½ ounces if you want to weigh them on a kitchen scale for accuracy. Roll into round balls and arrange into rows in the prepared pan.
Cover the rolls with plastic wrap and let rise another 30-45 minutes until puffy and sides are touching.
Preheat the oven to 375°F while the rolls are rising. Remove the plastic wrap and bake, uncovered, for 15-20 minutes until golden brown. Remove from the oven and rub softened butter over the tops of the rolls while still hot.
Additional butter for brushing finished rolls