Preheat the oven to 150C/300F/Gas 2.
Score the skin of the pork with a sharp knife into a diamond pattern. Place the meat into a deep-sided roasting tray with 600ml/1pt1fl oz water. Cover with foil and roast in the oven for three hours.
Remove the foil, increase the oven temperature to 200C/400F/Gas 6 and cook for another 1½ hours, or until very tender and the skin in very crisp.
Place the apples, butter and cider into a saucepan, cover with a lid and cook for 4-5 minutes, or until the apple pieces begin to break down.
Beat the apple until a purée consistency and season to taste with the sugar and a little salt.
For the mash, boil the potatoes in salted water for 15 minutes, or until tender. Drain and place the potatoes back into the saucepan over the heat to remove excess moisture.
Place three-quarters of the butter and milk into a saucepan and heat until the butter is melted. Add to the mash and beat well until soft and creamy. Finally season with salt and freshly ground black pepper.
Heat a heavy-based frying pan until hot and add the remaining butter, cabbage and 75ml/3fl oz water. Stir until the cabbage is just tender. Remove from the heat and season to taste with salt and freshly ground black pepper.
Using a spoon and fork, tear the meat from the pork shoulder and pile onto a plate. Spoon the mash and cabbage alongside and a large dollop of apple sauce. Finally add a few pieces of crackling.