01 - Combine the flour, sugar, yeast, and salt in the bowl of a stand mixer fitted with a dough hook.
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 becomes smooth.
04 - Gradually add the softened butter, a few cubes at a time, mixing thoroughly 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 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 together. Place the braided dough in a buttered 9x5-inch loaf pan.
07 - Cover loosely and let rise for another 45 minutes until puffy and nearly doubled in volume.
08 - Preheat the oven to 350°F.
09 - Whisk together the egg yolk and milk. Brush the top of the brioche gently with the egg wash mixture.
10 - Bake for 25 to 30 minutes 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.