In a large mixing bowl or the bowl of a stand mixer, whisk together the warm milk, yeast and granulated sugar. Let sit for 5 minutes or until the mixture is foamy. (If the mixture doesn't foam, you will need to start over with fresh yeast.)
1 cup warm milk, 1 tablespoon instant yeast, 3 tablespoons granulated sugar
Add the flour, eggs and salt to the bowl and mix with the dough hook for one minute on low speed, until the ingredients are incorporated.
4 cups bread flour, 2 large eggs, 1 teaspoon salt
Scrape down the sides and bottom of the bowl and continue mixing at medium speed, for 2 minutes. The dough should be pulling away from the sides of the bowl.
Scrape down the sides and bottom of the bowl. With the mixer on medium speed, begin adding the butter one tablespoon at a time. After the butter has been added, the dough will look very sticky and wet.
8 tablespoons unsalted butter
Continue mixing with the dough hook for another 5 minutes until the dough looks smooth and elastic. It should feel almost dry (not sticky) to the touch. If it is still sticky, continue mixing until it reaches the point where it feels soft and dry to the touch. (If you are using a hand mixer, you might need to finish the dough off by kneading by hand on a lightly floured surface.)
Lightly grease a large bowl and transfer the dough to the bowl. Cover the bowl with lightly greased plastic wrap and let rest in a warm place until doubled in size, about 60 to 90 minutes.