Heat oil in a pot and add onion, garlic, carrot, and celery to soften with a pinch of salt, about 5 minutes.
Add the can of tomatoes, stock, rice, sugar and pepper. Stir and bring to a simmer. Continue to simmer on low, uncovered, for about 30-40 minutes. Skim off the foam that rise to top during the first few minutes. Stir the soup occasionally to make sure the bottom isn't sticking or burning.
Blend everything until smooth either in a blender or with an immersion (hand blender) until smooth.
Add cream and combine through the soup. Taste and adjust for salt, pepper, sugar. If the soup is too thick, add a little more broth or water; if it is too thin, continue to cook a little more to let it reduce.
When ready to serve, ladle into a bowl, drizzle with a little extra cream and swirl it through with a spoon. Garnish with shredded basil leaves and croutons (optional).