This is an HR problem. If they’re happy with their job, it’s not possible for them to get a raise with the current company that likely comes anywhere close to what they can get jumping ship. If HR would be willing to say “Hey, we recognize that this person is doing good work and want to keep them, but also recognize they can realize a 50%+ increase elsewhere. Let’s open the checkbook.” Instead, they’ll say that the most they can give them is somewhere around 10%, maybe the manager can fight for 15%. In the end, they’re going to take the 50% increase, even if your corporate culture and everything else is great.