public function __invoke($value)
{
foreach ($this->constraints as $constraint) {
if (is_callable($constraint) && $constraint($value) || class_exists($constraint) && $value instanceof $constraint || interface_exists($constraint) && $value instanceof $constraint) {
return true;
}
}
return false;
}