Place warm milk in the bowl of a stand mixer fitted with a dough hook OR a large bowl. Dissolve yeast in milk and let stand 5 minutes until foamy.
Mix sugar, eggs, and salt into yeast mixture until smooth. Add 4 cups flour to bowl and mix on low speed OR with a wooden spoon if making dough by hand until dough pulls away from sides of bowl, about 2 minutes of mixing (if dough seems a bit wet, add additional flour by the tablespoon until dough pulls away from sides of bowl)
Add softened butter by the tablespoon while mixer is running or fold in by hand with a wooden spoon until butter is combined in the dough.
If making dough in stand mixer, knead dough in mixer on low speed 5-7 minutes until dough is stretchy and elastic. If making dough by hand, turn dough onto a lightly floured surface and knead by hand until dough is stretchy and elastic, about 10 minutes of kneading.
Place dough in a greased bowl, turning once to grease top. Cover bowl with plastic wrap and let rise in a warm place at room temperature 1 to 1-1/2 hours until dough is doubled in size.