Gerard Butler turns up in as many stinkers as Nicolas Cage. I think he’s a good actor - actually they both are - but he needs some help choosing roles.
At lease Cage has the excuse of massive debts and tax bills he has to pay down, so he is pretty much obligated to do any movie that will pay him cash up front.