In a glass measuring cup, heat the milk to 110 degrees F and stir in the sugar and yeast. If using active dry yeast, allow to sit for 15 minutes for the yeast to activate. If using instant yeast, simply move on to the next step.
Mix the eggs and vanilla into the milk yeast mixture.
In the bowl of a stand mixer fitted with a dough hook, mix the flour and salt together.
Pour the wet ingredients into the flour and mix on low-medium speed for about 3 minutes, or until it forms a ball around the hook.
Add in a few pieces of butter at a time, allowing them to fully incorporate before adding more.
Once all of the butter is incorporated, turn the mixer up to medium-high speed and mix for 8-12 minutes. To check if the dough is ready, tear off a small piece and carefully spread it out to see if you can see the light through it without it tearing. If it tears, mix for another minute or two and check again.
Once the dough is ready, transfer it to a lightly greased bowl, cover, and allow to proof overnight in the fridge. Alternatively, you can let the dough rise in a warm place for about 1 hour or until doubled in size.
Once proofed, divide the dough into eight 65g pieces (you'll have a little extra). On a non-floured surface, flatten each piece, then bring the edges over and press into the middle. Turn the dough over and roll into a smooth ball. You can bake the extra dough in a small loaf pan, if desired.
Arrange the dough balls into four rows of two in a non-greased pullman or loaf pan. Brush with an egg wash, then cover and proof at room temperature for about 1 hour, or until doubled in size and the dough springs back slowly when pressed with a finger.
Towards the end of the proof time, preheat the oven to 400 degrees F.
Brush the dough with the egg wash again, then bake for 15 minutes or until evenly golden, then turn the oven down to 350 degrees F, and bake for another 30 minutes until deeply golden.
Allow the brioche loaf to cool completely in the pan.