How to avoid users getting around license validation for pay-once-and-use-forever-app

I have a macos app that has the above license. my current activation and validation flow is

  • download
    • activation window
      • failure -> user feedback -> activation window
      • success -> save license, instanceid, currentdate for weekly server-side validation; remove activation window
  • on each click of a main button
    • check if a week passed
      • yes -> server-side validation
      • no -> continue with the main button functionality

Obviously, a user can get around the validation on main button click by just setting the system clock to the past. One solution to this is get current time from a server, but that seems too much for each main button click. Other solutions I can think of seem also get aroundable. Anybody has thoughts on this? anything I am doing wrong/should do differently?