In a large skillet, heat olive oil and sauté onions and garlic over medium heat until tender. Add in tomatoes and cook until caramelized and cooked down. Add chicken stock, bring to a boil, reduce heat to a simmer and cook for about 10-15 minutes, until flavors have melded. Season with salt and pepper and blend.
Prepare sandwiches by spreading 1 side of each bread slice with garlic butter, layering the other with a 1 1/2 slices of cheddar cheese and a few torn pieces of mozzarella. Cook on both sides until golden.
Pour 1 cup of soup on the bottom, and layer sandwiches on top, followed by a drizzle of more soup. Grate some Parmesan cheese on top and bake for 10-20 minutes until golden and bubbly.