public function can($resource, $resourceValue = null) { $challenge = new Challenge($resource, $resourceValue); $rules = $this->rulesFor($challenge->getResource()); $this->lastEvaluator = new $this->evaluator($rules, $this); return $this->lastEvaluator->check($challenge); }