public function withAttribute($key, $value)
    {
        $newAttributes = $this->attributes->withAttribute($key, $value);

        $that = clone($this);
        $that->attributes = $newAttributes;

        return $that;
    }