oliuz/teamwork
Teamwork is a Laravel package for adding team management to your app, with models, migrations, and traits for teams, members, invitations, roles, and permissions to simplify membership and access control.
composer require will fail on older skeletons.composer.json constraints before upgrading: you want illuminate/* at ^8.0|^9.0 and no transitive dependency still pinned to Laravel 6/7.config/<package>.php and whether it is publishable.composer require vendor/package:^9.0
php artisan vendor:publish --provider="Vendor\\Package\\PackageServiceProvider"
php artisan migrate # only if the package ships migrations
Then exercise one read/write path in php artisan tinker (e.g. the package facade or a model/repository it exposes) before wiring it into application code.composer update vendor/package, then run the full test suite. Pay special attention to any code that used Laravel 6/7-only APIs; the package is now built against Laravel 9 conventions.app() or static calls. This keeps it mockable and makes it easy to swap in a custom implementation..env. Keep package-specific env keys grouped and documented in .env.example.Kernel::schedule() and ensure workers are restarted on deploy (php artisan queue:restart).use Vendor\Package\Facades\Package;
public function test_feature(): void
{
Package::shouldReceive('doSomething')->once()->andReturn(true);
// ...
}
Use RefreshDatabase when the package owns tables, and Facade::clearResolvedInstances() in tearDown if you swap bindings between tests.^9.0, update CI matrix to Laravel 9 / PHP 8, run composer dump-autoload, php artisan package:discover, and php artisan config:clear before validating.php artisan package:discover (or composer dump-autoload). A stale bootstrap/cache/packages.php is a common cause of "class not found" after a version bump.php artisan config:cache will freeze published package config. Use config:clear when changing env values, and never call env() outside config files.tearDown.illuminate/support ^6|^7. Use composer why-not vendor/package 9.0.0 to find the blocker.How can I help you explore Laravel packages today?