Preheat your oven to 350 degrees Fahrenheit. Line a rimmed baking sheet with parchment paper. Rinse your tomatoes and slice them in half. Place the halved tomatoes on your prepared baking sheet. Season the tomatoes with olive oil, kosher salt, black pepper, your dried herbs, crushed red pepper flakes and add in your cloves of unpeeled garlic (this helps the garlic avoid burning while roasting). Roast your tomatoes for 30 to 40 minutes, until edges of your tomato halves begin to shrivel slightly and the juices start to release. Remove from oven and allow to cool for about 5 to 10 minutes.
Remove the skins from the roasted garlic cloves and place in your blender. Add in your tomatoes and blend on medium-low speed until well blended. Taste and adjust seasoning as desired. Set aside to begin working on the next stage of your sauce.
In a 4-quart dutch oven heat 3 tablespoons olive oil over medium heat. Add your onions, celery, garlic, grated carrot and zucchini and cook until vegetables begin to soften, about 5 to 7 minutes. Add your ground beef and, using a wooden spoon, break up your beef to combine with veggies and cook until the beef is browned, about 5 minutes. Add your tomato paste and stir to combine. Add your roasted tomato sauce and a ½ cup water then stir to combine it all together. Add in your basil leaves and bring the sauce to a simmer. Cover and simmer for about an hour, checking about halfway to stir.
During the last 15 minutes of cooking, bring a large pot of salted water to a boil. Add in your pasta of choice and cook until al dente. Strain your pasta, reserving about ¼ cup to ½ cup of pasta water, and place in a large bowl. Spoon your sauce over the pasta and begin tossing it together, adding pasta water as needed to help create a luscious sauce. A blend of grated pecorino and parmesan works beautifully here, but is still optional if you’re not consuming dairy.
Ladle the pasta into bowls, garnish with a sprig of fresh basil, and enjoy immediately.