public function setSecret(string $secret): self
    {
        if (!$this->validate->secret($secret)) {
            throw new ValidateException('Invalid secret.', 9);
        }

        $this->secret = $secret;

        return $this;
    }