$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['flags'] = 1; $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); $res->active_spread = $odds['active_spread']; $res->difference = $odds['difference']; $res->flags = 1; $res->margin = $odds['margin']; DB::transaction(function () use ($res) { $res->save(); }, 5); } } } }