$value) { $odds = $value; $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['flags'] = 1; $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->flags = 1; $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->margin = $odds['margin']; $res->save(); } } } }