Preheat the oven to 160℃.
Season the beef short ribs with salt and black pepper. Heat a little oil in a large frying pan over a high heat, then brown the ribs really well on all sides. Take them out and set aside.
Meanwhile, heat a little oil in a large ovenproof casserole dish over a medium heat. Add the onion and cook for 4-5 minutes until softened, then add the garlic and tomato paste and cook for another minute.
Pour in the red wine, beef stock and soy sauce. Add the browned short ribs to the casserole dish and bring it to a simmer.
Pop the lid on and cook in the oven for about 3 hours, until the beef is tender and falling away from the bones.
Take the ribs out and pull the meat away from the bones. Put the sauce over a high heat and let it bubble until it reduces into a rich, glossy sauce. Shred the beef, stir it back through the sauce and keep it warm.
Cook the macaroni in salted boiling water according to the packet instructions, then drain it.
Add the butter, flour, milk, garlic granules and smoked paprika to a large saucepan. Place it over a medium heat and whisk continuously until the butter has melted and the sauce is smooth and thickened.
Take it off the heat, then stir in the Cheddar and Parmesan until melted and smooth. Season to taste with salt and black pepper.
Stir the macaroni through the cheese sauce until completely coated. If it’s a little too thick, loosen it with a splash of milk.
Spoon the creamy mac and cheese into bowls, then pile the sticky pulled short rib beef over the top. Finish with a little extra Parmesan if you like.