In a large Dutch Oven, on medium heat, brown beef or turkey until almost done- about 5-7 minutes. The meat will compete cooking while it simmers in the soup. Remove, drain the fat from the meat and wipe down the pot with a paper towel to remove excess fat.
Heat olive oil over medium heat, add in carrots, celery and onions and sauté 6-8 minutes until fragrant. Add in minced garlic, bay leaf, rosemary, fennel, red pepper flakes, oregano and salt and pepper. Cook 1 minute.
Next, add in tomatoes. Cook until warmed through. Add in beef broth. You can swap in vegetable broth if desired. Add back in cooked beef or turkey and beans. Bring to a low simmer for 1 minute. Cover and simmer on low for 20-30 minutes, stirring every 10 minutes to prevent sticking.
In another pot, while the soup is simmering, boil 6 cups of water. Add pasta or grains. Cook pasta until al dente. Drain and set aside.
To complete the soup: Remove cover, add in juice of lemon and spinach or kale. Simmer another 5 minutes. Check for seasonings. Add more salt or pepper if desired. Remove bay leaf.
In large bowls, add in one serving of the cooked pasta or grains, then top with soup.
If you are feeling decadent, you can top with grated parmesan.
When storing leftovers, keep the grains or pasta separate from the soup so it s does not soak up all the broth and become gummy.