where('reviewable_type', $reviewableType) ->where('reviewable_id', $reviewableId) ->select( DB::raw('avg(`score`) as average'), DB::raw('count(*) as count'), ) ->first(); $average = number_format((float) $votes['average'], 1); // title or episode $model = app(modelTypeToNamespace($reviewableType))->find( $reviewableId, ); $model->local_vote_average = $average; $model->local_vote_count = $votes['count']; $model->save(); } }