Add the olive oil to a large pot over medium heat.
Next, add in the onions, gently season with salt, and sauté for 5 minutes. Once they are lightly browned around the edges, reduce the heat to low and cook for 10 minutes, stirring occasionally stirring.
Stir in the garlic and carrots and cook for an additional 5 minutes.
Mix in the tomato paste and cook it until the veggies are coated and the paste turns a rust-like color. This will take 3 to 5 minutes.
Add in the tomatoes, basil, salt, and stock, and simmer over low to medium heat for 30 minutes.
Transfer the mixture in batches to a blender. Remove the center cap from the top, replace it with a kitchen towel, and slowly blend at high speed until it is smooth. You could also use a hand immersion blender for this. Repeat the process if you could not fit it all on the first time, which will be most likely happen as you do not want to fill it up past the ¾ mark.
Transfer the soup to a large pot. Finish by stirring in the cream, balsamic vinegar, salt, and ground white pepper.
Garnish with croutons and additional fresh basil, if desired.
