permissions = collect($data) ->filter(function ($permission, $key) { return !in_array($key, ['name', 'guard_name']); }) ->values() ->flatten() ->unique(); return Arr::only($data, ['name', 'guard_name']); } protected function afterCreate(): void { $permissionModels = collect(); $this->permissions->each(function ($permission) use ($permissionModels) { $permissionModels->push(Permission::firstOrCreate([ 'name' => $permission, 'guard_name' => $this->data['guard_name'], ])); }); $this->record->syncPermissions($permissionModels); } }