public function put($key, Model $instance, array $attributes = ['*'])
    {
        if ($attributes != ['*'] && $this->has($key)) {
            $instance = Model::merge($this->cache[$key]['instance'], $instance, $attributes);
            $attributes = array_merge($this->cache[$key]['attributes'], $attributes);
        }

        $this->cache[$key] = [
            'instance' => $instance,
            'attributes' => $attributes
        ];

        return $instance;
    }