Financial reasons for both sides, he can go to a less demanding league and prolong his career and get paid the wage he was told he wasn't going to get and his previous club don't get the burden of paying him in his 30's 350k a week while saving money for those potential wages and getting 27-35 million in return, looks like it was planned months ahead with Diaz coming in early.
Be the same with Salah, keep him in his prime and then let someone else have the burden paying him a huge wage he wants when in his 30s and scout a left footed younger replacement the next 12 months while Salah runs down his contract, very much American sports influence in dealing with aging star players who demand bigger contracts that's creeping into Football now. If you see this summer's free agency list then clubs don't seem to mind players running contracts down, as wage demands go up, they see the bigger picture of letting some other give them the money and save those potential wages funds on a replacement instead.
Seems all parties are happy with this Mane deal, was done in just over a week.