In a large Dutch oven or heavy pot, heat the oil or lard over medium heat.
Cook the diced bacon until crispy. Remove and set aside.
Brown the pork and beef in the same pot, then remove and set aside.
Add the kielbasa and sear for a few minutes, then remove.
In the same pot, add the onion and garlic, cooking until soft and fragrant.
Add the mushrooms and cook until they release their liquid.
Return all the meats to the pot.
Stir in the sauerkraut, fresh cabbage, tomatoes, and tomato paste.
Pour in the broth and wine.
Add the bay leaves, caraway seeds, paprika, allspice, marjoram, and black pepper.
Bring to a gentle simmer, cover, and cook on low heat for at least 2 hours (preferably 4 hours or more).
Stir occasionally, adding more broth if needed.
In the last 30 minutes, stir in the prunes and apple if using.
Taste and adjust seasoning with salt and additional black pepper.
Let the bigos rest for a few hours or overnight (it tastes even better the next day).
Serve with rye bread or boiled potatoes.