Add the flour, instant yeast, salt, warm milk, sugar, softened butter, and eggs to a large bowl or the bowl of a stand mixer.
Mix until a dough forms, then knead until the dough is soft and smooth. The dough should be soft and slightly tacky.
Place the dough in a lightly greased bowl, cover, and allow it to rise in a warm place for 2 hours.
While the dough rises, melt the 4 tablespoons of salted butter in a small skillet over low heat. Add the minced garlic and cook for about 30-60 seconds, stirring frequently, just until fragrant. Do not allow the garlic to brown. Remove from the heat and set aside.
Once the dough has risen, transfer it to a lightly floured work surface and roll it out into a large rectangle.
Spread the garlic butter mixture evenly over the dough. Sprinkle the cheddar and mozzarella evenly over the top.
Cut the dough lengthwise into 12 even strips. Roll each strip up tightly, similar to a cinnamon roll.
Line a greased baking dish with parchment paper and arrange the 12 rolls in the prepared dish.
Cover the rolls and allow them to rise for 30 minutes.
Preheat the oven to 350°F.
Whisk the egg yolk with 1 tablespoon of water. Brush the egg wash evenly over the tops of the rolls.
Bake for 25 minutes at 350°F, or until the rolls are golden brown and cooked through. Once they come out of the oven, brush them with softened butter, if desired.
Allow the rolls to cool for a few minutes before serving. Serve warm while the cheese is still melty.