In a soup pot, sauté onions in 4 Tbsp butter over medium heat until translucent. Stir in tomato paste and cook while stirring until it starts to brown about 3-5 minutes.
Pour in 4 cups chicken stock and scrape the bottom of the pot with your wooden spatula to remove any caramelized brown bits (brown bits=flavor!).
Add all cans of tomatoes, including juices, garlic powder and salt. Bring to a boil. Reduce the heat and simmer for 10 minutes, covered. Then turn burner off.
Use an immersion blender to puree the soup right in the pot, or once the soup is not hot*, transfer the soup in batches to a blender or food processor to puree. *Do not ever add hot liquids to a blender or food processor as it will expand and possibly explode all over kitchen. #nightmare
After mixture is pureed, add in chopped basil and half and half. Pulse a few times to incorporate. Add in additional salt to taste. Enjoy!