In a large pot, heat the olive oil over medium heat. Add the diced onion, carrots, and celery. Sauté for about 5 minutes until the vegetables start to soften.
Add the minced garlic and sauté for an additional minute until fragrant.
Increase the heat to medium-high and add the ground beef (or turkey). Cook, breaking it up with a wooden spoon, until browned and cooked through. Drain any excess fat if necessary.
Stir in the diced tomatoes, both types of beans, beef or vegetable broth, Italian seasoning, and bay leaf. Bring the mixture to a gentle boil.
Once boiling, reduce the heat to low and cover the pot. Let it simmer for about 15-20 minutes to allow the flavors to meld.
After simmering, stir in the pasta and cook according to the package instructions until al dente (usually about 8-10 minutes).
Remove the bay leaf, then season the soup with salt and pepper to taste.
Serve hot, garnished with fresh parsley or basil on top.
Notes
Feel free to substitute ground beef with turkey for a lighter option.