$value) { // code... $odds = []; $odds['over'] = $value['ele1']; $odds['under'] = $value['ele2']; $odds['margin'] = (float) Margin::calculate($odds, 1); $odds['active_spread'] = $value['active_spread']; $odds['total'] = $total; $odds['difference'] = abs(1 / $odds['over'] - 1 / $odds['under']); $odds = array_merge($odds, $base); $res = OddsTotal::where('event_id', $base['event_id']) ->where('bookmaker_id', $base['bookmaker_id']) ->where('total', $odds['total']) ->first(); if (! $res) { OddsTotal::create($odds); } else { $res->over = number_format($odds['over'], 2); $res->under = number_format($odds['under'], 2); $res->total = number_format($odds['total'], 2); if ($res->isDirty()) { $res->oddchange_at = now(); } $res->active_spread = $odds['active_spread']; $res->difference = $odds['difference']; $res->checked_at = now(); $res->margin = $odds['margin']; $res->save(); } } } }