Place a large pot over medium high heat while you dice your onions and mince your garlic.
Add your beef to the pot when hot, breaking it into large chunks and allowing it to brown. When it begins to caramelize, add in your onions, mushrooms if using, and a teaspoon or so of salt.
Cook, stirring every minute or so for about 4 minutes, or until onions are softened. Turn heat down to medium low and add your garlic and stir, cooking until fragrant, about 30 seconds.
Pour in your tomato puree and stir to incorporate fully with the meat. Then add remaining ingredients except for 1 teaspoon of salt, stirring until completely incorporated.
Bring to a bubble then reduce heat to lowest setting, cover, and let cook for 30 minutes.
After 30 minutes, stir the sauce and taste. Add remaining salt if needed. This is also when you can add more sugar if the sauce isn't sweet enough for you, 1 tablespoon at a time.
Serve, or allow to continue to simmer (this is ideal, longer the better) for several hours until ready to serve. Stir every 20 to 30 minutes and taste frequently.
Store leftover sauce in the fridge for 4 days, or in the freezer for 6 months.
Notes
*Depending on your preferred sweetness, and the natural sweetness in the canned tomatoes you're using, you may need to add an additional 2 tbs of sugar. Wait until after the sauce has cooked for at least 30 minutes before adding more. *Some canned tomato products have more salt than others. I usually add up to 3 tsp, but add less, and taste after the 30 minute mark to see if you need the full amount. *Want to add some nutrition? Add 1 cup of finely grated carrots or zucchini when adding the herbs and spices.