01 - Heat 2 tablespoons olive oil in a large pot over medium heat. Add 1 medium yellow onion, 1 diced green bell pepper, and 2 diced celery stalks. Sauté for 6-8 minutes until softened.
02 - Stir in 3 minced garlic cloves, 1 teaspoon smoked paprika, 1 teaspoon dried thyme, 1 teaspoon dried oregano, 1/2 teaspoon cayenne pepper, 1/2 teaspoon ground black pepper, and 1 teaspoon salt. Cook for 1 minute until fragrant.
03 - Add 1 tablespoon tomato paste and cook for another minute, stirring thoroughly.
04 - Pour in 1 (28 ounce) can crushed tomatoes and 2 cups vegetable broth. Add 1 teaspoon sugar and 1 bay leaf. Bring the mixture to a gentle simmer.
05 - Reduce the heat to low, cover the pot, and simmer for 20 minutes, stirring occasionally.
06 - Remove the bay leaf. Stir in 2 tablespoons unsalted butter and, if desired, 1/2 cup heavy cream. Blend the soup with an immersion blender until smooth, or leave slightly chunky based on preference. Taste and adjust seasoning as needed.
07 - While the soup simmers, prepare the grilled cheese. Spread 4 tablespoons of softened unsalted butter evenly on one side of each of the 8 bread slices.
08 - Place 4 bread slices, buttered-side down, on a skillet over medium heat. Top each with 2 slices of sharp cheddar cheese. Cover with the remaining 4 bread slices, buttered-side up.
09 - Grill the sandwiches for 3-4 minutes per side, until they are golden brown and the cheese is thoroughly melted.
10 - Cut the grilled cheese sandwiches into halves or quarters. Serve the hot tomato soup, garnished with 2 tablespoons chopped fresh parsley, alongside the grilled cheese.