liberusoftware/organizations-teams
Laravel package for managing organizations and teams. Build organizational structures, group users into teams, assign roles, and control access with ready-made models, migrations, memberships, and relationships that plug into your existing application.
composer require liberusoftware/organizations-teams. This is a Liberu module package, so check whether Laravel package discovery registers the service provider automatically; if not, add the module/provider to bootstrap/providers.php or config/app.php.php artisan vendor:publish --tag=organizations-teams-configphp artisan vendor:publish --tag=organizations-teams-migrationsphp artisan migrateREADME.md and composer.json for install and Laravel version constraints.config/ for model overrides, table names, middleware, and context settings.database/migrations/ for the real schema: organizations, teams, memberships, invitations, ownership columns.src/Models/ and src/Contracts/ for the public API.src/Http/Middleware/ and routes for how “current context” is resolved.src/Actions/ or src/Services/ classes for create/switch/invite/transfer workflows.auth. It should resolve the active team from session, route, or user default, bind a context object into the container, and make scoped queries reliable. For API routes, resolve context from a header, token claim, or explicit route parameter instead of session.where('team_id', ...) everywhere; centralize it through the context resolver or query scopes. This matters most for dashboards, lists, exports, and search.$this->authorize('view', $team) or $user->can('manageMembers', $team), not scattered role-string comparisons. If the package ships policies, register them; otherwise create app-level policies around its models.DB::transaction() and enforce “at least one owner” with a policy plus a database-safe check. Dispatch events after commit.handle(). This is the main multi-tenant leak risk.Team::findOrFail().RefreshDatabase and run the package migrations in the test suite.php artisan vendor:publish interactively once, then codify the tags. Clear config cache after changes: php artisan config:clear.composer.json, read the source for the actual method names, and write integration tests around the flows you depend on. The listed last-release date appears ahead of the current date, so verify tags/releases before assuming stability.team_id on scoped queries during development.php artisan route:list to verify package routes and middleware.php artisan migrate:status to confirm package migrations ran.How can I help you explore Laravel packages today?