pusher/pusher-http-laravel
Official Laravel integration for Pusher Channels. Configure the Pusher broadcasting driver, trigger server-side events, authorize private and presence channels, and broadcast Laravel events in real time. Includes config publishing and native support for Laravel's event broadcasting system.
^4.2.4 (or ^4.2 with a lockfile you refresh) rather than a bare ^4.0; on Laravel 6 you can stay on any 4.2.x. Confirm what actually resolved with composer show <vendor/package> before debugging anything else — a stale composer.lock silently keeping 4.2.3 is the most common "the new version doesn't work" report.vendor/<vendor>/<package>/src/*ServiceProvider.php tells you the bindings, singletons, deferred providers, and publish tags. That is the real API surface for a Laravel package.php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider" (or the narrower --tag= variants you find in the provider). Publish config always; publish migrations and views only if you intend to own them.php artisan tinker or a throwaway feature test and run the single happy-path call once. Getting one successful round-trip outside your app code makes every later failure unambiguously a wiring problem.php artisan about (available since Laravel 7) and php artisan package:discover are the fastest sanity checks that discovery and config are loaded.new PackageClient() bypasses everything the provider set up and is the classic source of "works in tinker, fails in the controller."App\Services\… class that owns the package calls gives you a single seam to fake, log, or swap. Worth the extra file on anything beyond a trivial integration.config/<package>.php, override via .env keys referenced inside the config file, and commit the published config. Never read env() from application code.SerializesModels behaviour and connection/queue overrides per job.RefreshDatabase for anything the package persists, Http::fake() for its outbound calls (Laravel 7's client pairs well here), Event::fake() / Bus::fake() to assert the package dispatched what you expect without executing it.@include soup; use Str::of() fluent helpers when post-processing its string output.illuminate/support constraint in your own composer.json or a transitive dependency, not a bug in the package.php artisan config:clear. Any env() call outside a config file returns null once cached, which turns into a silent fallback at runtime.EventServiceProvider fires them twice. Check the provider's boot() before adding your own wiring.migrate; check table names don't collide with existing ones, and confirm down-migrations exist before running in a shared environment.package:discover → dump the resolved config (config('<package>') in tinker) → resolve the contract and dd() it → enable the query log if the package is DB-backed → wrap calls in your app service with Log::debug() in/out.AppServiceProvider::register(); use any macroable hooks; publish and edit config; only then consider a fork. Never edit vendor/.How can I help you explore Laravel packages today?