setParameter('callback', $callback); } public function check($value) { $this->requireParameters($this->fillable_params); $callback = $this->parameter('callback'); if (false === $callback instanceof Closure) { $key = $this->attribute->getKey(); throw new InvalidArgumentException("Callback rule for '{$key}' is not callable."); } $callback = $callback->bindTo($this); $invalidMessage = $callback($value); if (is_string($invalidMessage)) { $this->setMessage($invalidMessage); return false; } elseif(false === $invalidMessage) { return false; } return true; } }