01 - Heat olive oil in a large pot over medium heat. Add onion, celery, and bell pepper. Sauté for 5–7 minutes until softened and fragrant.
02 - Add garlic, smoked paprika, thyme, oregano, cayenne, black pepper, and salt. Cook for 1 minute until spices release their aroma.
03 - Pour in crushed tomatoes, vegetable broth, sugar, bay leaves, and Worcestershire sauce. Stir well to combine and bring mixture to a gentle simmer.
04 - Reduce heat to low, cover, and simmer for 20 minutes. Stir occasionally to prevent sticking and allow flavors to meld.
05 - Remove and discard bay leaves. Use an immersion blender to purée soup until smooth, or leave slightly chunky if preferred. Alternatively, blend in batches using a countertop blender.
06 - Stir in heavy cream or coconut cream if using, followed by fresh parsley and lemon juice. Taste and adjust seasoning as needed. Keep warm.
07 - Butter one side of each bread slice. Layer cheddar and Swiss cheese between two slices, buttered sides facing outward.
08 - Heat a skillet over medium heat. Place sandwiches in pan and cook for 2–3 minutes per side until golden brown and cheese is fully melted.
09 - Cut each sandwich diagonally into halves or quarters. Ladle warm soup into bowls, garnish with additional parsley, and serve alongside grilled cheese.