Preheat the oven to 400°F.
Chop off the top of each head of garlic. Place in foil and drizzle 1 tbsp of olive oil on top of the garlic heads. Wrap into a ball and roast in the oven for 50 minutes.
To make the garlicky herbed butter: In a bowl, mix the melted unsalted butter with 1 tbsp sage, basil, oregano, parsley and chili flakes. Season with salt & pepper. Mash the baked garlic cloves into the butter using a fork. Mix until combined and smooth.
Heat the remaining olive oil in a large skillet over medium-high heat. Add in the onions and season with salt, stirring occasionally until softened. After 10 minutes, add in the sugar to help with the caramelization process. To prevent the onions from drying out when cooking, add a little water. At this point, add in the balsamic vinegar. Cook for another 5-10 minutes, or until the onions are golden and caramelized. Set aside.
Using the same skillet, melt the salted butter and cook the mushrooms. Season with pepper. Cook undisturbed for 5 minutes. Add in the thyme and the remaining 1 tbsp sage, stir and continue cooking until the mushrooms have caramelized (about 3-5 minutes). Set aside.
Preheat the oven to 350°F.
Brush the garlicky herbed butter over the bottom half of the rolls. add on the caramelized onions, followed by the caramelized mushrooms, and top with shredded mozzarella cheese. Cover with the top half of the rolls. Brush another layer of the garlicky herbed butter on the top. Bake in the oven for 10-15 minutes, or until the cheese has melted. Enjoy!