In a large stock pot, heat the olive oil over medium-high heat. Add the ground beef, onion, and garlic. Season with 1/2 teaspoon salt and 1/8 teaspoon black pepper. Break the beef apart into large chunks with a wooden spoon, and cook until the onion is softened and the garlic is fragrant, about 3 minutes.
Add in the chopped carrot, celery, and cabbage, stirring well to combine. Cook, stirring often, until vegetables are softened and beef is cooked through. Stir in the zucchini, canned tomatoes and their juices, and tomato sauce.
Pour in the water, stirring well to combine. Stir in the Italian seasoning, red pepper flakes (if using), and remaining salt and pepper. Test for seasoning, and add additional salt and pepper to taste. Bring to a boil, then reduce the heat to medium-low. Simmer, stirring occasionally, for 2 hours.
Stir in the garbanzo or cannellini beans (and pasta or rice if using), and simmer for 30 minutes more.