01 - In the bowl of a stand mixer fitted with a dough hook, combine the flour, sugar, yeast, and salt.
02 - Add the eggs and lukewarm milk. Mix on low speed until a shaggy dough forms.
03 - Increase to medium speed and knead for 5 minutes until the dough is smooth.
04 - Gradually add the softened butter, a few cubes at a time, mixing well after each addition. Continue kneading for another 10 minutes until the dough is glossy, elastic, and pulls away from the sides of the bowl.
05 - Shape the dough into a ball, place it in a lightly greased bowl, cover, and let rise in a warm place for 1 to 1.5 hours, or until doubled in size.
06 - Gently deflate the dough and transfer to a lightly floured work surface. Divide into three equal portions, roll each into a rope, and braid them. Alternatively, shape as desired and place in a buttered 9x5-inch loaf pan.
07 - Cover loosely and let rise for another 45 minutes until puffy and nearly doubled.
08 - Preheat the oven to 350°F.
09 - Whisk together the egg yolk and milk for the egg wash. Brush the top of the brioche gently.
10 - Bake for 25 to 30 minutes, or until golden brown and a skewer inserted in the center comes out clean.
11 - Allow to cool in the pan for 10 minutes, then transfer to a wire rack to cool completely before slicing.