To make the dough: Place flour, sugar, yeast, and salt in the bowl of a standing mixer and mix to combine. Attach the dough hook to the mixer. Add eggs, milk, and vanilla and mix on low-medium speed for 4-5 minutes, until dough comes together. Add butter gradually, a few pieces at a time, mixing until fully incorporated before adding more. This should take several minutes. Scrape down the sides of the bowl as needed. Once all the butter is added, continue mixing for 10 minutes until dough pulls away from the sides. It will be slightly soft and sticky and will look oily—that’s ok. Place dough in a large bowl, cover with plastic wrap, and leave in the fridge for at least half a day or overnight (it can be kept in the fridge for up to 2 days).
The next day, grease an 8½ x 4½ inch loaf pan
Pull the dough from the fridge and divide it into 8 equal pieces. Form each piece of dough into a ball and arrange the balls on the bottom of the loaf pan (2 rows of 4 balls). Cover pan loosely with plastic wrap and leave at room temperature until almost doubled in size and almost fills the pan, 1-2 hours (rising time will depend on how warm the room is; the warmer it is, the faster it will rise).
Preheat oven to 350°F/180°C, making sure to allow plenty of time for it to heat fully before the bread has finished rising.
For the glaze beat one large egg with 1 tablespoon of water in a small bowl. Remove plastic wrap from pan, brush the top of the loaf with a thin layer of the glaze, and place the loaf on middle rack of oven. Bake for about 30-35 minutes (if you have a thermometer, the center of the loaf should register 190°F) until cooked through and golden. Allow bread to cool for 20 minutes, then remove from pan and allow to cool completely before slicing.
Brioche will stay fresh for 24 hours in an airtight container at room temperature. It can also be frozen for up to 2 months.