protected function renderedShowFieldStrategies(Model $model)
    {
        $views = [];

        foreach ($this->getModelInformation()->show->fields as $key => $data) {

            if ( ! $this->allowedToUseShowFieldData($data)) {
                continue;
            }

            try {
                $instance = $this->getShowFieldFactory()->make($data->strategy);

                // Feed any extra information we can gather to the instance
                $instance->setOptions($data->options());

                if ($data->source) {
                    if (isset($this->getModelInformation()->attributes[ $data->source ])) {
                        $instance->setAttributeInformation(
                            $this->getModelInformation()->attributes[ $data->source ]
                        );
                    }
                }

                // @codeCoverageIgnoreStart
            } catch (Exception $e) {
                $message = "Failed to make show field strategy for '{$key}': \n{$e->getMessage()}";

                throw new StrategyRenderException($message, $e->getCode(), $e);
                // @codeCoverageIgnoreEnd
            }

            try {
                $views[ $key ] = $instance->render($model, $data->source);

                // @codeCoverageIgnoreStart
            } catch (Exception $e) {
                $message = "Failed to render show field '{$key}' for strategy " . get_class($instance)
                         . ": \n{$e->getMessage()}";

                throw new StrategyRenderException($message, $e->getCode(), $e);
                // @codeCoverageIgnoreEnd
            }
        }

        return $views;
    }