Heat olive oil in a large pot over medium heat. Add diced onion and sauté for 3–4 minutes, until translucent. Stir in minced garlic and cook for another 30 seconds, being careful not to burn it.
Add ground beef to the pot and break it up with a spoon as it cooks. Brown the beef fully, then drain excess fat if needed.
Stir in shredded cabbage, sliced carrots, and chopped celery. Cook for 5–7 minutes, stirring occasionally, until cabbage starts to wilt.
Pour in diced tomatoes with juice and beef broth. Add oregano, paprika, black pepper, and salt. Stir well, bring to a boil, then reduce heat to low and cover.
Let the soup simmer for 20–25 minutes, until cabbage and vegetables are tender. Add potatoes (if using) in the last 15 minutes of cooking.
Taste and adjust the seasoning with more salt, pepper, or spices if needed. For extra richness, stir in heavy cream or sour cream before serving (optional).
Ladle soup into bowls, garnish with fresh parsley or cilantro, and serve with crusty bread or crackers.