Combine the warm water, sugar, and yeast in the bowl of your stand mixer (or a large mixing bowl if you’re making the bread by hand). Allow the mixture to proof (get bubbly, frothy, active).
Once the yeast has proofed, add in the salt, granulated garlic, thyme, basil, softened butter, beaten eggs, and milk. Stir to combine everything. Attach the dough hook to your mixer. Add in the flour, one cup at a time, kneading the dough on low speed until it’s smooth and slightly sticky (5-6 minutes).
Lightly flour a large work surface, then turn your dough out to it. Knead 4-5 times, until the dough comes together into a ball.
Lightly grease either the bowl of your stand mixer, or a large mixing bowl. Place the dough into the bowl, turning once to coat both sides. Cover tightly with plastic wrap. Allow the dough to rise in a warm area until it doubles in size, about one hour.
Gently “punch” the dough down, then turn it out to a lightly floured surface. Roll the dough out into a rectangle about 20-inches long, about 12-inches wide. Brush the rolled dough with your softened butter. Sprinkle with the granulated garlic, dried basil, dried oregano, ground white pepper, and shredded cheeses.
Cut the rectangle width-wise into 5 or 6 equal strips. Stack the strips on top of one another, so the filling is layered between the layers of dough. Cut the strips into 4 equal-sized parts.
Lightly butter a 9×5-inch loaf pan. Stack the squares against each other, cut sides down. Lightly cover the pan with plastic wrap and set the pan aside to rise again for 30 minutes.
Preheat the oven to 350°F. Bake the bread for 30-35 minutes, or until the loaf is nicely golden brown on top. This bread is best served warm (and/or just out of the oven).