setParameter('callback', $callback); } /** * Check the $value is valid * * @param mixed $value * @return bool * @throws \Exception */ public function check($value): bool { $this->requireParameters($this->fillableParams); $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; } }