Много записей это сколько? Вы просто каждый раз делаете запрос к базе для проверки. Если переложить проверку поиска дубля на пхп, то проблема решится.
Получите все записи разом из бд, в пхп найдите несуществующие записи и через DB::insert проведите вставку.
Что то типа такого:
$models = Model::select("id","num")->get();
foreach($numbers as $num){
if (!$models->where("num",$num)->first()) {
\DB::table("table_name")->insert(["num"=>$num]);
}
}
Ну и как вариант вытащить все записи из списка numbers и сравнить каких не хватает:
$models = Model::select("id","num")->whereIn("num",$numbers)->get();
foreach($numbers as $num){
if (!$models->where("num",$num)->first()) {
\DB::table("table_name")->insert(["num"=>$num]);
}
}