Set a soup pot over medium-high heat and melt butter. Add onion and salt, and cook, stirring, until onions turn soft and translucent, 4 to 5 minutes.
Add ground beef and cook, stirring and breaking up large clumps, until meat is browned and broken into small crumbles, about 5 minutes.
Season with garlic, black pepper, cayenne, and bay leaf; cook and stir for 1 minute. Pour in beef broth, increase heat to high, and bring to a boil. Stir in cabbage, reduce heat to medium, and cook until cabbage is just tender, 10 to 15 minutes.
Pour in tomatoes and water, and continue to simmer, 10 to 15 minutes more. Stir in rice and half the parsley; simmer over medium heat until rice is tender and soup thickens, about 20 minutes. If soup becomes too thick as it simmers, add a little more beef broth and/or water. Season to taste with salt.