Cook pasta according to package directions and drain well. Reserve the pasta water to add to the soup.
Brown ground beef with onion and a little salt and pepper over medium heat; drain.
Add garlic, herbs and spices. Stir into meat/onion mixture until well combined.
Add tomatoes and tomato sauce and bring to a simmer, stirring frequently.
Add carrots, celery, beef broth, pasta water, cannellini/kidney beans, and liquid from the green beans. Bring to a boil.
Reduce heat and simmer (covering pot partially with lid) for 15 minutes, stirring occasionally.
Add cabbage (do not add kale at this point if substituting) and green beans. Simmer an additional 10 minutes.
When ready to serve, place pasta (and a small handful of kale, if using) in soup bowl and cover with soup (see note below).
Sprinkle with Parmesan cheese.