01 - Place flour, sugar, yeast, and salt in the bowl of a stand mixer fitted with a dough hook. Mix briefly to combine.
02 - Add room temperature eggs and lukewarm milk. Mix on low speed until a shaggy, sticky dough forms, about 1 minute.
03 - Increase mixer to medium speed. Knead for 5 minutes until the dough begins to smooth out and develop structure.
04 - Add softened butter cubes gradually, allowing each addition to fully absorb before adding more. Continue kneading on medium speed for 10 minutes until dough is glossy, elastic, and cleanly pulls away from bowl sides.
05 - Shape dough into a smooth ball. Place in a lightly greased bowl, cover with plastic wrap or damp towel. Let rise in a warm, draft-free area for 1 to 1 ½ hours until doubled in bulk.
06 - Gently press down dough to deflate. Transfer to lightly floured surface. Divide into 3 equal pieces, roll each into a 12-inch rope, and braid tightly. Alternatively, shape into a ball and place in a buttered 9x5-inch loaf pan.
07 - Cover loosely with plastic wrap or towel. Let rise for 45 minutes until puffy and nearly doubled in size.
08 - Position oven rack to center position. Preheat to 350°F.
09 - Whisk egg yolk and milk until blended. Gently brush the entire surface of the risen loaf with egg wash, being careful not to deflate.
10 - Place loaf in preheated oven. Bake for 25 to 30 minutes until deep golden brown and a wooden skewer inserted into the center emerges clean.
11 - Let cool in the pan for 10 minutes. Carefully remove and transfer to a wire rack. Cool completely before slicing, about 1 hour.