Heat the milk to 110 degrees F and stir in yeast and sugar. If using active dry yeast, allow to sit for 15 minutes. If using instant yeast, simply move on to the next step.
Mix the eggs and vanilla into the milk yeast mixture.
Combine flour, spices, and salt together in the bowl of a stand mixer fitted with a dough hook.
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 one piece of butter at a time, allowing it to fully incorporate before adding the next.
Once all of the butter is incorporated, turn the mixer up to medium-high speed and mix for 6-8 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 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.