map(function ($group) { return collect($group['subscriptions'])->pluck('notif_id'); }) ->flatten(1) ->toArray(); } $rows = array_map(function ($notifId) use ($config, $user) { return [ 'id' => Uuid::uuid4(), 'notif_id' => $notifId, 'channels' => json_encode( collect($config['available_channels'])->mapWithKeys( fn($channel) => [$channel => true], ), ), 'user_id' => $user->id, ]; }, $notificationIds); $user->notificationSubscriptions()->delete(); $user->notificationSubscriptions()->insert($rows); } }