skills/leeovery/claude-laravel/laravel-packages

laravel-packages

SKILL.md

Laravel Packages

Package development: extracting reusable patterns for use across projects.

Related guides:

When to Extract

Extract to package when:

  1. Pattern used in 3+ projects
  2. Code is stable and well-tested
  3. Pattern has clear boundaries
  4. Maintenance cost justified

→ Complete extraction guide: package-extraction.md

Package Structure

my-package/
├── src/
│   ├── PackageServiceProvider.php
│   ├── Actions/
│   ├── DTOs/
│   └── ...
├── tests/
├── composer.json
└── README.md

Use semantic versioning. Test packages independently. Document clearly.

Core Packages (Always)

Spatie Laravel Data

composer require spatie/laravel-data
  • DTOs with casting, validation, transformers
  • Test factory support

Spatie Model States

composer require spatie/laravel-model-states
  • State machine pattern
  • State transitions with dedicated classes

Spatie Query Builder

composer require spatie/laravel-query-builder
  • Filter, sort, include relations via query strings
  • API-friendly querying

Saloon

composer require saloonphp/saloon saloonphp/laravel-plugin
  • Elegant API client builder
  • Testable external service integrations

Pest

composer require pestphp/pest pestphp/pest-plugin-laravel --dev
  • Expressive testing framework
  • Architecture tests

Optional Packages

Laravel Sanctum

composer require laravel/sanctum

When: API authentication needed

Stancl Tenancy

composer require stancl/tenancy

When: Multi-tenant application

Spatie Settings

composer require spatie/laravel-settings

When: Application-level settings needed

Installation Commands

Full Install

composer require \
  spatie/laravel-data \
  spatie/laravel-model-states \
  spatie/laravel-query-builder \
  saloonphp/saloon \
  saloonphp/laravel-plugin

composer require \
  pestphp/pest \
  pestphp/pest-plugin-laravel \
  --dev

./vendor/bin/pest --init

Minimal Install

composer require spatie/laravel-data
composer require pestphp/pest pestphp/pest-plugin-laravel --dev
./vendor/bin/pest --init
Weekly Installs
23
GitHub Stars
36
First Seen
Jan 24, 2026
Installed on
codex17
opencode17
gemini-cli16
claude-code16
cursor16
github-copilot14