Skip to content

Releases: EloquentWorks/Passage

v1.0.0 — Initial Stable Release

Choose a tag to compare

@SignalByNick SignalByNick released this 03 Aug 02:26

Laravel Passage v1.0.0 🎉

The first stable release of Laravel Passage.

Laravel Passage provides a flexible onboarding, checklist, journey, progression, and gated-experience engine for Laravel applications. Define multi-step passages, enroll any Eloquent model, track persistent progress, enforce prerequisites, automate completion, guide users to their next task, and manage the entire passage lifecycle.

✨ Features

  • Fluent passage definitions
  • Configuration-based passage definitions
  • Required and optional steps
  • Step prerequisites and dependency chains
  • Automatic step completion conditions
  • Conditional step visibility
  • Named-route and direct-URL destinations
  • Persistent passage enrollments
  • Persistent step progress
  • Progress percentage calculation
  • Automatic next-step resolution
  • Pending, in-progress, blocked, completed, expired, and cancelled passage states
  • Pending, in-progress, completed, skipped, failed, and blocked step states
  • Retry policies
  • Maximum-attempt limits
  • Passage deadlines
  • Individual step deadlines
  • Repeatable passages
  • Passage cycle tracking
  • Manual step completion
  • Optional-step skipping
  • Step failure tracking
  • Administrative overrides
  • Passage cancellation
  • Passage restarting
  • Automatic condition synchronization
  • Middleware for completed passages
  • Middleware for completed steps
  • Middleware for next-step redirects
  • JSON-friendly incomplete responses
  • Passage reminders
  • Passage expiration
  • Definition and progress repair
  • Enrollment and audit pruning
  • Lifecycle events
  • Audit history
  • Optional actor attribution
  • Metadata on definitions, enrollments, and steps
  • Configurable models
  • Configurable table names
  • Integer subject-key support
  • UUID and string subject-key support
  • Eloquent model integration through HasPassages
  • Laravel package auto-discovery
  • Artisan installation and maintenance commands
  • PHPUnit test suite
  • PHPStan and Larastan static analysis
  • Laravel Pint code formatting
  • GitHub Actions continuous integration

🧭 Passage Workflows

Laravel Passage supports workflows such as:

  • User onboarding
  • Account setup
  • Profile completion
  • Product tours
  • Compliance checklists
  • Verification processes
  • Training journeys
  • Application workflows
  • Approval processes
  • Feature unlocks
  • Progression systems
  • Recurring reviews
  • Gated application experiences

🛡️ Middleware

Laravel Passage includes middleware for:

  • Requiring an entire passage to be completed
  • Requiring an individual step to be completed
  • Redirecting users to their next configured step
  • Automatically enrolling eligible subjects
  • Returning configurable JSON responses for incomplete passages

⏱️ Artisan Commands

Laravel Passage provides commands for:

  • Installing package resources
  • Running package migrations
  • Synchronizing automatic conditions
  • Expiring overdue passages
  • Sending passage reminders
  • Repairing stored progress
  • Pruning retained enrollment and audit data

📣 Lifecycle Events

Laravel Passage dispatches events for:

  • Passage enrollment
  • Passage completion
  • Passage expiration
  • Passage cancellation
  • Passage restart
  • Passage reminders
  • Step start
  • Step completion
  • Step skipping
  • Step failure

📚 Documentation

Documentation is available in the docs/ directory and includes:

  • Installation
  • Core Concepts
  • Defining Passages
  • Using Passage
  • Conditions and Automation
  • Middleware
  • Commands and Scheduling
  • Events and Audit History
  • Configuration
  • Architecture
  • Customization
  • API Reference
  • Complete Examples
  • Testing
  • Security
  • Troubleshooting

✅ Supported Versions

  • PHP 8.2+
  • Laravel 12
  • Laravel 13

🚀 Installation

Install the package through Composer:

composer require eloquent-works/passage

Then install the package:

php artisan passage:install

Run migrations:

php artisan migrate

You can also install and migrate in one command:

php artisan passage:install --migrate

Add the HasPassages trait to any Eloquent model that can participate in a passage:

use EloquentWorks\Passage\Traits\HasPassages;

class User extends Authenticatable
{
    use HasPassages;
}

❤️ Thank You

Thank you for trying Laravel Passage. Feedback, bug reports, feature requests, discussions, and pull requests are always welcome.