get(); foreach($newSpam as $ns) { $key = strtolower($ns->token); if(isset($spam['words']['spam'][$key])) { $spam['words']['spam'][$key] = $spam['words']['spam'][$key] + $ns->weight; } else { $spam['words']['spam'][$key] = $ns->weight; } } $newSpamCount = count($spam['words']['spam']); $spam['documents']['spam'] = $newSpamCount; arsort($spam['words']['spam']); Storage::put(AutospamService::MODEL_SPAM_PATH, json_encode($spam, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT)); $ham = json_decode(Storage::get(AutospamService::MODEL_HAM_PATH), true); $newHam = AutospamCustomTokens::whereCategory('ham')->get(); foreach($newHam as $ns) { $key = strtolower($ns->token); if(isset($spam['words']['ham'][$key])) { $ham['words']['ham'][$key] = $ham['words']['ham'][$key] + $ns->weight; } else { $ham['words']['ham'][$key] = $ns->weight; } } $newHamCount = count($ham['words']['ham']); $ham['documents']['ham'] = $newHamCount; arsort($ham['words']['ham']); Storage::put(AutospamService::MODEL_HAM_PATH, json_encode($ham, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT)); $combined = [ 'documents' => [ 'spam' => $newSpamCount, 'ham' => $newHamCount, ], 'words' => [ 'spam' => $spam['words']['spam'], 'ham' => $ham['words']['ham'] ] ]; Storage::put(AutospamService::MODEL_FILE_PATH, json_encode($combined, JSON_PRETTY_PRINT,JSON_UNESCAPED_SLASHES)); Cache::forget(AutospamService::MODEL_CACHE_KEY); Cache::forget(AutospamService::CHCKD_CACHE_KEY); } }