PHPackages                             cammac/nova-workflow - 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. cammac/nova-workflow

ActiveLibrary

cammac/nova-workflow
====================

A Laravel Nova resource tool.

2.2.0(5y ago)356.8k↑30.4%17[16 PRs](https://github.com/algethamy/nova-workflow/pulls)MITPHP

Since Feb 8Pushed 3y ago1 watchersCompare

[ Source](https://github.com/algethamy/nova-workflow)[ Packagist](https://packagist.org/packages/cammac/nova-workflow)[ RSS](/packages/cammac-nova-workflow/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (28)Used By (0)

Workflow Resource Tool for Laravel Nova
=======================================

[](#workflow-resource-tool-for-laravel-nova)

This package helps you to create workflow on your Nova application. It's built on top of this package [winzou/state-machine](https://github.com/winzou/state-machine)

[![screenshot](./diagram.png)](./diagram.png)

[![screenshot](./details.png)](./details.png)

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

[](#installation)

You can install the package in to a Laravel app that uses [Nova](https://nova.laravel.com) via composer:

```
composer require cammac/nova-workflow
```

Next, publish the config file

```
php artisan vendor:publish --tag  workflow
```

open `config/workflow.php` and define your workflow

Configuration
-------------

[](#configuration)

you can define inside `workflows` element workflow name and it's config as following:

fieldmandatoryDescriptionmodelYesModel class you want to do your workflow oncolumnYesColumn name you want to monitorstatesYesAll possible statestransitionsYesAll possible transitionsfromYesarray: From statestoYesTo stateeventNoEvent class that will be fired after the transition is completedstyle\_classesNoapply your css classeswith\_reasonsNostring: column inside your model will be filled with the transitionwith\_reasonsNoarray: will generate a dropdown list from with\_reasons.model with `id` as option's value and `label` as option's textUsage
-----

[](#usage)

To display the workflow that are associated with a given Nova resource, you need to add the workflow Resource Tool to your resource.

For example, in your `app/Nova/Order.php` file:

```
use Cammac\Workflow\Workflow;

...

public function fields(Request $request)
{
    return [
        ID::make()->sortable(),

        // Your other fields

        Workflow::make('request')->onlyOnDetail() // request is the workflow name defined in workflow configuration file

    ];
}
```

This will automatically search possible transitions for the current status

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity35

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 57.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~73 days

Recently: every ~158 days

Total

11

Last Release

1916d ago

Major Versions

1.0.5 → 2.0.02019-05-18

1.1.0 → 2.2.02021-02-08

### Community

Maintainers

![](https://www.gravatar.com/avatar/545ac5f8546ec191c3b59dba187745f010f346788c48518282844b8036fda9df?d=identicon)[efrontsa](/maintainers/efrontsa)

---

Top Contributors

[![algethamy](https://avatars.githubusercontent.com/u/9952761?v=4)](https://github.com/algethamy "algethamy (12 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (4 commits)")[![justinhough](https://avatars.githubusercontent.com/u/9469422?v=4)](https://github.com/justinhough "justinhough (3 commits)")[![rickgoemans](https://avatars.githubusercontent.com/u/7813679?v=4)](https://github.com/rickgoemans "rickgoemans (1 commits)")[![Yelles](https://avatars.githubusercontent.com/u/689478?v=4)](https://github.com/Yelles "Yelles (1 commits)")

---

Tags

laravelnova

### Embed Badge

![Health badge](/badges/cammac-nova-workflow/health.svg)

```
[![Health](https://phpackages.com/badges/cammac-nova-workflow/health.svg)](https://phpackages.com/packages/cammac-nova-workflow)
```

###  Alternatives

[optimistdigital/nova-multiselect-field

A multiple select field for Laravel Nova.

3403.5M7](/packages/optimistdigital-nova-multiselect-field)[coreproc/nova-notification-feed

A Laravel Nova package that adds a notification feed in your Nova app.

10149.1k](/packages/coreproc-nova-notification-feed)[inspheric/nova-defaultable

Default values for Nova fields when creating resources and running resource actions.

51174.8k1](/packages/inspheric-nova-defaultable)[cybercog/laravel-nova-ban

A Laravel Nova banning functionality for your application.

40199.8k](/packages/cybercog-laravel-nova-ban)[insenseanalytics/nova-server-monitor

A Laravel Nova tool for Spatie's Server Monitor library.

6546.9k](/packages/insenseanalytics-nova-server-monitor)[datomatic/nova-detached-actions

A Laravel Nova tool to allow for placing actions in the Nova toolbar detached from the checkbox selection mechanism.

11229.2k](/packages/datomatic-nova-detached-actions)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
