PHPackages                             coderscantina/laravel-finite - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. coderscantina/laravel-finite

ActiveLibrary[Database &amp; ORM](/categories/database)

coderscantina/laravel-finite
============================

A finite state machine for your Laravel/Eloquent models.

v2.0.0(3mo ago)02MITPHPPHP ^8.1|^8.2|^8.3|^8.4

Since Jun 23Pushed 3mo agoCompare

[ Source](https://github.com/coderscantina/laravel-finite)[ Packagist](https://packagist.org/packages/coderscantina/laravel-finite)[ Docs](https://github.com/coderscantina/laravel-finite)[ RSS](/packages/coderscantina-laravel-finite/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (4)Versions (16)Used By (0)

Finite State Machine for Laravel/Eloquent models
================================================

[](#finite-state-machine-for-laraveleloquent-models)

[![Latest Version on Packagist](https://camo.githubusercontent.com/691e04d926ec0b1249cc394748ce7f964d9f87b0d833d4445e425b58adf784d6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636f6465727363616e74696e612f6c61726176656c2d66696e6974652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/coderscantina/laravel-finite)[![License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![PHP Version](https://camo.githubusercontent.com/048859b4effff4db937c5d3efc6d72362787c5c715f5358ee816575164803377/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f636f6465727363616e74696e612f6c61726176656c2d66696e6974652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/coderscantina/laravel-finite)

A powerful finite state machine (FSM) library for Laravel/Eloquent models. Manage complex state workflows with a simple, fluent API.

Features
--------

[](#features)

- 🎯 **Simple &amp; Intuitive API** - Define states and transitions with ease
- 🔄 **State Management** - Apply transitions to Eloquent models automatically
- 📋 **Transition Rules** - Define allowed transitions between states
- 🎁 **Properties** - Apply properties during transitions
- 🎧 **Event Listeners** - Listen to pre/post transition events
- 🛡️ **Guards** - Control transitions with guard closures
- 📦 **Fluent &amp; Trait Accessors** - Work with both Eloquent models and Fluent objects
- ✅ **Laravel 10, 11, 12 Support** - Compatible with modern Laravel versions

Requirements
------------

[](#requirements)

- PHP 8.1 or higher
- Laravel 10, 11, or 12

Installation
------------

[](#installation)

Install the package via Composer:

```
composer require coderscantina/laravel-finite
```

For Laravel 5.5+, the service provider is automatically discovered. For older versions, add the service provider to your `config/app.php`:

```
CodersCantina\LaravelFinite\ServiceProvider::class,
```

Quick Start
-----------

[](#quick-start)

### 1. Add StateTrait to Your Model

[](#1-add-statetrait-to-your-model)

```
