protected function checkSettings(Request $request) { $continueSession = SettingsFacade::fromSession($request->session()); $needCheckCookie = false; if (SettingsFacade::fromUser()) { SettingsFacade::storeSession(); $needCheckCookie = true; } else { if (!$continueSession) { if (!SettingsFacade::fromCookie($request)) { // no cookie, no session SettingsFacade::makeAllChanges(); } SettingsFacade::storeSession(); } else { $needCheckCookie = true; } } if ($needCheckCookie) { $cookieSettings = new Settings(); if (!$cookieSettings->fromCookie($request)) { // no cookie, has session SettingsFacade::makeAllChanges(); } else { SettingsFacade::makeOnlyChanges(SettingsFacade::compare($cookieSettings)); } } }