CI had no Redis service, so 4 of 10 tests self-skipped instead of
running. Adds a redis:7 service on 127.0.0.1:6379 so the existing
fsockopen probe in tests/Pest.php finds it and all 10 tests execute.
Adds Pint and PHPStan (level 9, plain phpstan since larastan fails to
bootstrap the app here due to a webpatser/fledge-fiber HTTP client
incompatibility) as CI gates. Fixes the two issues PHPStan surfaced:
the token-auth, user-cap and webhooks cards called Card::aggregate()
with a single-element array where the method expects a plain type
string, and RosterRecorder cast a mixed config value straight to int
instead of using the config repository's typed integer() accessor.