Heat the oil in a large non-stick heavy-based pan and place over a medium heat. Add the onions and sauté for about 10 minutes, stirring occasionally, until softened.
Add the tomatoes and garlic and simmer for about 5 minutes, stirring occasionally, until the tomatoes have softened and released their juices.
Pour in the stock and bring to a simmer. Simmer gently for 10 minutes.
Pour in the cream, stir well, and simmer for 5 minutes.
Remove from the heat and carefully blitz with a handheld stick blender until smooth. Alternatively, pour into a food processor and blend until smooth (take care, it will be hot).
Season to taste and keep warm over a low heat.
Meanwhile, make the grilled cheese toasties: lay the slices of the bread on a board. Spread both sides with butter (yes, both sides). Mix together the grated Cheddar and mozzarella in a bowl, then divide equally between 2 slices of bread. Top with the other slices to make 2 cheese sandwiches.
Place a large non-stick frying or griddle pan over a medium heat. Once hot, add the sandwiches. If your pan isn’t big enough to cook them both at once, cook one at a time. Use the back of a spatula to press down firmly onto the sandwiches. Fry for about 2-3 minutes, or until golden and crisp underneath. The exact time will depend on the heat of your pan so watch closely. Flip and repeat on the other side. The grilled cheese toastie is ready when the cheese is melting and oozing on the inside, and the bread is crisp and golden on the outside.
Spoon the tomato soup into bowls and drizzle with a swirl of cream. Slice each toastie in half and serve with the tomato soup. Enjoy!