01 - Combine flour, sugar, yeast, and salt in the bowl of a stand mixer fitted with a dough hook.
02 - Add 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 softened butter a few cubes at a time, mixing well after each addition. Continue kneading for 10 minutes until dough is glossy, elastic, and pulls away from bowl sides.
05 - Shape dough into a ball, place 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 dough and transfer to a lightly floured surface. Divide into three equal portions, roll each into a rope, and braid. Place in a buttered 9x5-inch loaf pan.
07 - Cover loosely and let rise for 45 minutes until puffy and nearly doubled in size.
08 - Preheat oven to 350°F.
09 - Whisk egg yolk and milk together. Brush the top of the brioche gently with the 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.