public function put($cacheGroupKey, array $params, $data, $tags = ['default'])
    {
        // Make sure caching is enabled
        if (!$this->isCachingEnabled()) {
            return false;
        }

        // Retrieve cache group settings
        $cacheGroup = $this->getCacheGroup($cacheGroupKey);

        // Set cache tag to group name
        if (!$tags) {
            $tags = $cacheGroupKey;
        }

        if (empty($cacheGroup) || (empty($cacheGroup['active']) || empty($cacheGroup['key']))) {
            return false;
        }

        // Generate cache key
        $cacheKey = $this->generateCacheKey($cacheGroup['key'], $params);

        // Make sure we have an array of tags
        if (!is_array($tags)) {
            $tags = [$tags];
        }

        try {
            return IlluminateCache::tags($tags)
                                  ->put($cacheKey, $data, $cacheGroup['lifetime'] ?: $this->config['lifetime']);
        } // predis bug with WRONG OPERATOR
        catch (ServerException $e) {
            cache_wipe();

            try {
                $errors = [
                    'exception' => $e->getMessage(),
                    'type'      => 'redis wrong type',
                    'tags'      => $tags,
                    'cache_key' => $cacheKey,
                ];

                // Notify bugsnag
                app('nodes.bugsnag')->notifyException($e, json_encode($errors), 'error');
            } catch (\Exception $e) {
                // Fail silent
            }
        }
    }