where('municipality_id', $municipalityId) ->where('feature_id', $featureId) ->delete(); // ※新規追加 $permissionIds = array_values(array_unique(array_map('intval', $permissionIds))); foreach ($permissionIds as $pid) { self::create([ 'municipality_id' => $municipalityId, 'feature_id' => $featureId, 'permission_id' => $pid, ]); } } /** * 付与済み権限ID一覧を取得(自治体単位) */ public static function getPermissionIds( int $municipalityId, int $featureId ): array { return self::query() ->where('municipality_id', $municipalityId) ->where('feature_id', $featureId) ->pluck('permission_id') ->map(fn ($v) => (int)$v) ->toArray(); } }