public function shouldCmsRegister()
    {
        if (null !== $this->shouldRegister) {
            // @codeCoverageIgnoreStart
            return $this->shouldRegister;
            // @codeCoverageIgnoreEnd
        }

        if ( ! $this->isCmsEnabled()) {
            $this->shouldRegister = false;
            return false;
        }

        if ($this->isConsole()) {
            $this->shouldRegister = $this->isCmsEnabledArtisanCommand();
            return $this->shouldRegister;
        }

        if ($this->isCmsBeingUnitTested()) {
            $this->shouldRegister = true;
            return true;
        }

        $this->shouldRegister = $this->isCmsWebRequest() || $this->isCmsApiRequest();
        return $this->shouldRegister;
    }