In a large pot over medium heat, melt the butter or coconut oil and add the onion, carrots, celery, cabbage, parsley, garlic, sage, and thyme. Cover to steam and cook the vegetables down, stirring occasionally, for about 30 minutes.
While the vegetables cook, prepare the meatball mixture by mixing together all of the ingredients until combined.
Once the veggies have softened, add the diced tomatoes, beef stock, and potatoes. Bring to a slow boil. Roll the meat mixture into balls and drop carefully into the simmering soup. Once all the meatballs are in, cover and let the soup cook on low for another 30 minutes until the meatballs are cooked completely through and the potatoes are soft.