kingflamez/laravelrave
kingflamez/laravelrave is a Laravel package that simplifies integrating Flutterwave’s Rave payment gateway. It helps you initiate payments, verify transactions, and handle webhooks through a clean, configurable API.
composer.json constraints allow it ("illuminate/*": "^10.0" resolves cleanly) and that composer update <vendor>/<package> pulls 4.2.1 without also dragging Laravel 9-only transitive deps forward.extra.laravel.providers in the package's composer.json. If you have a manual entry in config/app.php from an older install, remove it to avoid double registration.php artisan vendor:publish --tag=<package>-config) and diff the new stub against your existing config/<package>.php. A major-version-era package picking up L10 support often also refreshes the config stub; silently keeping a stale config is the usual source of "it works in a fresh app but not ours."php artisan about shows the expected Laravel version and that the package's own artisan commands appear in php artisan list.new it up. The package's main entry point is almost certainly bound as a singleton. Inject it into constructors or use app(...) / the facade if one is published, so config and any shared state (HTTP client, cache store, connection) stay consistent across the request.App\Contracts\<Thing>) and bind the package's class to it in a service provider. When the next major lands you change one binding rather than every call site — this is the cheapest insurance you can buy against a package whose changelog is this terse.config/<package>.php reading env(), with the env() call living only in the config file — not at call sites. That keeps config:cache in production from silently returning null.routes/console.php (Laravel 10 style) or Kernel::schedule() depending on your skeleton, and prefer onOneServer() + withoutOverlapping() for anything that talks to an external API. Test under queue:work --once before letting a worker loose.<package>.enabled) read at the boundary, so you can disable it in production without a deploy if the L10 upgrade surfaces a behavioural difference.phpunit.xml, stub the package's env keys with safe test values; use Http::fake() / Queue::fake() at the boundary rather than mocking the package's internals, which are the part most likely to shift between minor versions.composer update <vendor>/<package> --with-dependencies → run the package's own test suite if it ships one → run yours → smoke-test one real request per integration point → tag.Doctrine\DBAL for column changes, refreshed HasMany/Model internals). Pin the exact version in composer.json ("4.2.1" or "~4.2.1") and read the diff between the previous tag and 4.2.1 on the repo before shipping — with release notes this thin, the diff is the changelog.php -v in every pipeline stage, including the Docker image used for deploy.config:cache will bake in the old shape. Always php artisan config:clear && php artisan config:cache as part of the deploy, and diff the published stub as noted above.bootstrap/cache/packages.php being stale or the deploy user lacking write permission to bootstrap/cache. php artisan package:discover regenerates it.php artisan migrate --pretend first on a staging dump rather than discovering index/column issues in production.dd() inside vendor code; if you must instrument, use a temporary Log::channel() or Telescope/Xdebug so a composer update doesn't wipe your debugging.app/ is the trap — it survives exactly one upgrade.Str helpers, dynamic properties on models, $dates). Run your suite with error_reporting(E_ALL) in staging and grep the log; these become hard errors in Laravel 11.How can I help you explore Laravel packages today?