whereHas('services', function (Builder $query) { $query->where('type', 'monitoring'); })->get(); /** @var Server $server */ foreach ($servers as $server) { $monitoring = $server->services() ->where('type', 'monitoring') ->first(); $range = CarbonPeriod::create(Carbon::now()->subHour(), '1 minute', Carbon::now()); foreach ($range as $date) { Metric::factory()->create([ 'server_id' => $monitoring->server_id, 'created_at' => $date, ]); } } } }