In a large bowl, whisk together the flour, sugar, salt, and yeast.
In a separate bowl, whisk the warm milk and eggs together. Pour this wet mixture into the dry ingredients.
Mix with a dough hook on low speed until a shaggy dough forms. Increase speed to medium and knead for 5-7 minutes until the dough is smooth and elastic.
With the mixer on low, gradually add the softened butter, one cube at a time, allowing each piece to incorporate before adding the next. Continue kneading for another 8-10 minutes until the dough is very smooth, elastic, and pulls away from the sides of the bowl.
Transfer the dough to a lightly greased bowl, cover with plastic wrap, and let it rise in a warm place for 1.5 to 2 hours, or until doubled in size.
Gently punch down the dough and shape it into a loaf. Place it in a greased 9x5 inch loaf pan.
Cover the pan and let the dough rise for another 1 to 1.5 hours, or until it has risen above the rim of the pan.
Preheat your oven to 375°F (190°C). Bake for 30-35 minutes, or until the loaf is golden brown and sounds hollow when tapped on the bottom.
Let the brioche cool in the pan for 10 minutes before transferring it to a wire rack to cool completely.
Notes
For an even richer flavor, you can add an egg wash (1 egg beaten with 1 tablespoon of water) before baking. Let the egg wash set for a few minutes before baking.