Start the soup. Heat olive oil (or butter) in a pot over medium heat. Add onion and cook 5 to 6 minutes until soft. Add garlic and cook 30 seconds.
Build flavor. Stir in tomato paste and cook 1 minute.
Simmer. Add crushed tomatoes, broth, basil, oregano (if using), salt, and pepper. Bring to a gentle simmer and cook 12 to 15 minutes.
Blend. Use an immersion blender (or carefully blend in batches) until smooth.
Finish. Stir in sugar/honey if needed. Add cream if using. Stir in balsamic or lemon juice if using. Taste and adjust salt.
Make grilled cheese. Spread butter (or mayo) on the outside of each bread slice. Build sandwiches with cheese in the middle.
Toast. Heat a skillet over medium-low. Cook sandwiches 3 to 5 minutes per side until deeply golden and the cheese is melted. (Cover the pan for 1 minute if needed to help melt.)
Serve. Slice sandwiches and serve with warm tomato soup.