Add a small drizzle of oil in the bottom of a saucepan over medium-high heat. When warm, add the diced onion and fresh garlic and stir. Cook for 5-7 minutes, stirring occasionally, or until the onion is softened and slightly browned. Add smoked paprika, cumin, and black pepper, stir, and cook for about 60 more seconds or until fragrant. Remove from the heat.
Use a rubber spatula to add the saute mixture to a blender along with the roasted garlic cloves and apple cider vinegar. Blend until completely smooth, adding some of the tomato puree if needed to blend.
Pour the blender mixture into a saucepan and and all of the rest of the ingredients, except for the liquid smoke. Bring to a boil and then reduce to a gentle simmer.
Simmer the mixture for about 30 minutes, stirring occasionally. Stir in the liquid smoke and taste for seasoning (like more sweetness, acidity, salt, or spices). If you want a super smooth sauce, you can blend it again in batches or with an immersion blender.
Let the sauce cool completely before storing in the fridge (it's even better the next day!). Leftover BBQ sauce will keep for at least a week.
Notes
If you can't or don't want to get vegan Worcestershire sauce, use 1 tbsp additional soy sauce plus (if you have them) a pinch each of ground ginger, ground allspice, and ground nutmeg.