public function assert(Token $token, Constraint ...$constraints): void
    {
        $violations = [];

        foreach ($constraints as $constraint) {
            $this->checkConstraint($constraint, $token, $violations);
        }

        if ($violations) {
            throw InvalidToken::fromViolations(...$violations);
        }
    }