Melt the butter in your pot over medium heat, then add the diced onion and cook until soft and translucent, about 5 minutes. Stir in the garlic and cook for another 30 seconds until fragrant. This step lays the groundwork for every layer of flavor that follows.
Sprinkle the flour over the onions and garlic, stirring constantly for about 2 minutes to cook out the raw flour taste. Add the tomato paste and stir it in until everything turns a deep, rusty red color. This thickens your soup and intensifies the tomato flavor right from the start.
Slowly pour in the crushed tomatoes and broth, whisking as you go to prevent any lumps from forming. Bring the mixture up to a gentle simmer and let it cook uncovered for about 15 minutes, stirring occasionally so nothing sticks to the bottom.
Once the soup has simmered and thickened slightly, use an immersion blender to puree it until smooth. If you're using a standard blender, work in batches and vent the lid so steam can escape safely.
Lower the heat and stir in the heavy cream, smoked paprika, and Worcestershire sauce. Add the shredded smoked cheddar a handful at a time, stirring until each addition melts fully before adding more. This keeps the cheese silky instead of clumpy or grainy.
Taste your soup and add salt and pepper as needed, keeping in mind the cheddar already brings some saltiness. Ladle it into bowls and finish with a sprinkle of fresh basil for a pop of color and flavor.