First things first, get your stock pot and begin heating it to medium to medium high heat. Toss in the butter & oil. Once the butter & oil is hot, add in your chopped celery, carrots, onion, and garlic. Stir regularly with a wooden spoon or rubber spatula until veggies appear translucent. If they begin to look dry, don't be shy, add a little more oil and continue to stir.
Once the begins to brown, add in your spinach & artichoke hearts. Be sure to reserve their respective amounts. It isn't the end of the world if you forget, so don't sweat it. Keep stirring, you want to get the spinach fully coated and cooked down before continuing without burning any of the other ingredients.
Once the spinach cooks down, and we promise it will, add in everything from the "Herbs, Seasonings, & Flavors" section except the cheese. Give things another stir to coat your veggies with all the goodies you just added.
Add in your water, then stir with a whisk/whip to pull up anything that might be stuck to the bottom. We're not deglazing, just keeping food from settling at the bottom of the pot. Toss in both of your bases (see Note #2 about substitutions for base) with the whisk. Let simmer for about 30-45 minutes to cook out excess water. Taste and adjust salt/pepper as needed here.
Now it's time for the immersion blender. Give the soup one last stir and submerge your blender. Once everything has been emulsified, add in your heavy cream and blend a bit longer, until fully incorporated.
Remove the blender, and bring soup back to a light simmer. You may toss in the cheese from before. Stir vigorously with the whisk until the cheese has melted completely into the soup. Toss in the reserved spinach & artichoke (see Note #3) and simmer for another 15-20 minutes. Taste and make any final salt/pepper adjustments you see fit.