public function addAttribute($attribute)
    {
        if ($attribute instanceof CardAttribute) {
            $this->attributes[] = $attribute;

            return $this;
        }

        if ($attribute instanceof Closure) {
            $attribute($new = new CardAttribute());
            $this->attributes[] = $new;

            return $this;
        }

        throw new InvalidArgumentException(
            'Invalid attribute type. Expected '.CardAttribute::class.' or '.Closure::class.'.'
        );
    }