Melt 1 tablespoon butter and olive oil in a large pot over medium-high heat. Add onion and carrots and cook until soft, 5–7 minutes. Add garlic and cook for another minute, being careful not to burn the garlic. Add tomato paste and bouillon and cook until combined and fragrant. Add chopped tomatoes with juice, tomato sauce, broth, and water. Add paprika and season with salt and pepper. Bring to boil, reduce heat, cover and simmer for at least 30 minutes, but longer will result in better flavor.
Working in batches, carefully transfer soup to blender and blend until smooth (or use an immersion blender). Return soup to pot, add remaining 1 tablespoon butter and heavy cream. Season to taste with additional salt and pepper and bring back to a simmer. Cook for an additional 5 minutes.
To make croutons:
Drizzle olive oil on baguette slices and season with salt and pepper. Off the heat, place 1 tablespoon mounds of grated cheese on a nonstick skillet. Place a piece of bread, naked side down, on each mound of cheese in skillet. Place skillet on burner and set the heat to medium. (You do not want the pan hot before placing the cheese on it, it needs to slowly melt.) Slowly press down as the cheese begins to melt. Once cheese is crusted on bread, flip over to brown the other side for about 1 minute.
Serve soup with croutons and enjoy!
NOTE: Local tomatoes are always best for this fresh recipe.