Sweat onions, roasted garlic, and celery in butter for about 10 minutes. Do not brown veggies or butter. (Make sure to salt veggies a little at this point)
Add flour, stir constantly for a few minutes to allow roux to cook.
Add all ingredients, minus the cream and cheese.
Allow everything to cook for about a half hour.
Add in your cream and cook for an additional half our or until it reduces a little.
Add cheese. Blend soup immediately until it is a nice creamy texture.
Season with salt and pepper.