Sauté 1 onion, 1 hot pepper, and 2 garlic cloves in oil on medium heat for 3-5 minutes until softened. Cool for 2-3 minutes. Mix into the minced meat along with 1/2 bunch chopped parsley. Season with salt, pepper, 1 tablespoon paprika powder, and coriander powder. Form into small balls.
Cut the remaining 2 onions, 1 hot pepper, 3 garlic cloves, and 2 small tomatoes into small pieces and set aside.
Heat oil in a large pan on medium-high heat. Fry the meatballs for 5-7 minutes, turning occasionally, until browned on all sides. Remove and place in an oven preheated to 120°C (248°F). Continue cooking gently for 15-20 minutes until cooked through.
In the same pan, fry the remaining onions, pepper, and garlic in the oil on medium heat for 3-5 minutes until softened. Add 1 tablespoon cornstarch, roughly 1 tablespoon paprika powder, and 1 tablespoon savory, stirring constantly for 1-2 minutes until combined with the oil.
Add the beans with their liquid to the pan, stirring constantly and bring to a boil. Add the vegetable stock and diced tomatoes. Simmer for 10-15 minutes until the sauce reaches the desired consistency. Season to taste with salt and pepper. If desired, add a pinch of sugar or a squeeze of lemon juice.
Remove the meatballs from the oven and add to the bean pan. Sprinkle with the remaining parsley and serve.