public function getStatus()
    {
        $includePrivate = $this->auth->check();

        $totalComponents = Component::enabled()->authenticated($includePrivate)->count();
        $majorOutages = Component::enabled()->authenticated($includePrivate)->status(4)->count();
        $majorOutageRate = (int) $this->config->get('setting.major_outage_rate', '50');
        $isMajorOutage = $totalComponents ? ($majorOutages / $totalComponents) * 100 >= $majorOutageRate : false;

        // Default data
        $status = [
            'system_status'  => 'info',
            'system_message' => trans_choice('cachet.service.bad', $totalComponents),
            'favicon'        => 'favicon-high-alert',
        ];

        if ($isMajorOutage) {
            $status = [
                'system_status'  => 'danger',
                'system_message' => trans_choice('cachet.service.major', $totalComponents),
                'favicon'        => 'favicon-high-alert',
            ];
        } elseif (Component::enabled()->authenticated($includePrivate)->notStatus(1)->count() === 0) {
            // If all our components are ok, do we have any non-fixed incidents?
            $incidents = Incident::orderBy('occurred_at', 'desc')->get()->filter(function ($incident) {
                return $incident->status !== Incident::FIXED;
            });
            $incidentCount = $incidents->count();
            $unresolvedCount = $incidents->filter(function ($incident) {
                return !$incident->is_resolved;
            })->count();

            if ($incidentCount === 0 || ($incidentCount >= 1 && $unresolvedCount === 0)) {
                $status = [
                    'system_status'  => 'success',
                    'system_message' => trans_choice('cachet.service.good', $totalComponents),
                    'favicon'        => 'favicon',
                ];
            }
        } elseif (Component::enabled()->authenticated($includePrivate)->whereIn('status', [2, 3])->count() > 0) {
            $status['favicon'] = 'favicon-medium-alert';
        }

        return $status;
    }