def process_permission(permission, *args)
      cached = value_from_cache(permission, *args)

      if cached.nil?
        evaluate_permission(permission, *args)
      else
        cached
      end
    end
def process_permission(permission, *args)
      cached = value_from_cache(permission, *args)

      if cached.nil?
        evaluate_permission(permission, *args)
      else
        cached
      end
    end
checks if the permission has already been calculated
 otherwise the permission needs to be evaluated