PHPackages                             junaidnasir/larainvite - 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. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. junaidnasir/larainvite

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

junaidnasir/larainvite
======================

Laravel Invitation package, existing users can invite others by email

v12.0.0(1y ago)142119.9k↑53.3%33[1 PRs](https://github.com/junaidnasir/larainvite/pulls)MITPHPPHP &gt;=5.5.9CI failing

Since Mar 29Pushed 1y ago4 watchersCompare

[ Source](https://github.com/junaidnasir/larainvite)[ Packagist](https://packagist.org/packages/junaidnasir/larainvite)[ Docs](https://github.com/junaidnasir/larainvite)[ RSS](/packages/junaidnasir-larainvite/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (4)Versions (23)Used By (0)

Larainvite
==========

[](#larainvite)

Larainvite is a Laravel package that allows existing users to invite others via email.

It generates a one-time invitation code that can be sent as an invite link, and keeps track of the invitation status.

[![Latest Stable Version](https://camo.githubusercontent.com/1bd9bbd98bc563f1fd22ad8805ce9635bb78259161c55752e2b7712d644d80b5/68747470733a2f2f706f7365722e707567782e6f72672f6a756e6169646e617369722f6c617261696e766974652f762f737461626c65)](https://packagist.org/packages/junaidnasir/larainvite)[![License](https://camo.githubusercontent.com/651c15b07abd1832c4790a7d595cf3230d9bf2697eb9e35d2c3596c14a30e365/68747470733a2f2f706f7365722e707567782e6f72672f6a756e6169646e617369722f6c617261696e766974652f6c6963656e7365)](https://packagist.org/packages/junaidnasir/larainvite)[![Total Downloads](https://camo.githubusercontent.com/7ac185e1b186977cd38cff817d1cc22bfa09c0894747e8d4c10d7dcdfab58cce/68747470733a2f2f706f7365722e707567782e6f72672f6a756e6169646e617369722f6c617261696e766974652f646f776e6c6f616473)](https://packagist.org/packages/junaidnasir/larainvite)[![Monthly Downloads](https://camo.githubusercontent.com/a3d20681938d0576098e7c14be4f0cb753a9d6f6e5eea19a86433c2ef278269f/68747470733a2f2f706f7365722e707567782e6f72672f6a756e6169646e617369722f6c617261696e766974652f642f6d6f6e74686c79)](https://packagist.org/packages/junaidnasir/larainvite)

- v12 supports Laravel 12
- v7 supports Laravel 11
- v6 supports Laravel 10
- v5 supports Laravel 9
- v4 supports Laravel 8
- v3 supports Laravel 5.8+, Laravel 6.0 and Laravel 7.0
- v2 supports Laravel 5.0 to 5.8
- v1 supports Laravel 4.\*

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

[](#installation)

Begin by installing the package through Composer. Run the following command in your terminal:

```
composer require junaidnasir/larainvite
```

add the package service provider in the providers array in `config/app.php`:

```
Junaidnasir\Larainvite\LaraInviteServiceProvider::class
```

you may add the facade access in the aliases array:

```
'Invite'  => Junaidnasir\Larainvite\Facades\Invite::class
```

publish the migration and config file:

```
php artisan vendor:publish --provider="Junaidnasir\Larainvite\LaraInviteServiceProvider"
```

migrate to create `user_invitation` table

```
php artisan migrate
```

edit your `User` model to include `larainviteTrait`

```
use Junaidnasir\Larainvite\InviteTrait;
class user ... {
    use InviteTrait;
}
```

Usage
-----

[](#usage)

You can use ***facade accessor*** to retrieve the package controller. Examples:

```
$user = Auth::user();
//Invite::invite(EMAIL, REFERRAL_ID);
$refCode = Invite::invite('email@address.com', $user->id);
//or
//Invite::invite(EMAIL, REFERRAL_ID, EXPIRATION);
$refCode = Invite::invite('email@address.com', $user->id, '2016-12-31 10:00:00');
//or
//Invite::invite(EMAIL, REFERRAL_ID, EXPIRATION, BEFORE_SAVE_CALLBACK);
$refCode = Invite::invite($to, Auth::user()->id, Carbon::now()->addYear(1),
                      function(/* InvitationModel, see Configurations */ $invitation) use ($someValue) {
      $invitation->someParam = $someValue;
});
```

now create routes with `refCode`, when user access that route you can use following methods

```
// Get route
$code = Request::input('code');
if( Invite::isValid($code))
{
    $invitation = Invite::get($code); //retrieve invitation modal
    $invited_email = $invitation->email;
    $referral_user = $invitation->user;

    // show signup form
} else {
    $status = Invite::status($code);
    // show error or show simple signup form
}
```

```
// Post route
$code = Request::input('code');
$email = Request::input('signup_email');
if( Invite::isAllowed($code,$email) ){
    // Register this user
    Invite::consume($code);
} else {
    // either refCode is inavalid, or provided email was not invited against this refCode
}
```

with help of new trait you have access to invitations sent by user

```
$user= User::find(1);
$invitations = $user->invitations;
$count = $user->invitations()->count();
```

Events
------

[](#events)

***larainvite*** fires several [events](https://laravel.com/docs/master/events)

- Junaidnasir\\Larainvite\\Events\\Invited
- Junaidnasir\\Larainvite\\Events\\InvitationConsumed
- Junaidnasir\\Larainvite\\Events\\InvitedCanceled
- Junaidnasir\\Larainvite\\Events\\Expired

all of these events incloses `invitation modal` so you can listen to these events. include listener in `EventServiceProvider.php`

```
use Junaidnasir\Larainvite\Events\Invited;
use App\Listeners\SendUserInvitationNotification;

protected $listen = [
    Invited::class => [
        SendUserInvitationNotification::class,
    ],
];
```

`userInvite.php`

```
public function handle($invitation)
{
    \Mail::queue('invitations.emailBody', $invitation, function ($m) use ($invitation) {
            $m->from('From Address', 'Your App Name');
            $m->to($invitation->email);
            $m->subject("You have been invited by ". $invitation->user->name);
        });
}
```

Configurations
--------------

[](#configurations)

in `config/larainvite.php` you can set default expiration time in hours from current time.

```
'expires' => 48
```

you can also change user model to be used, in `larainvite.php`

```
'UserModel' => 'App\User'
```

you can also change invitation model to be used, in `larainvite.php`

```
'InvitationModel' => 'App\Invitation'
```

###  Health Score

50

—

FairBetter than 96% of packages

Maintenance45

Moderate activity, may be stable

Popularity49

Moderate usage in the ecosystem

Community23

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 66.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 ~155 days

Recently: every ~409 days

Total

22

Last Release

432d ago

Major Versions

v3.1.0 → v4.0.02020-09-16

v4.0.0 → v5.0.02022-05-17

v5.0.0 → v6.0.02023-04-08

v6.0.0 → v7.0.02024-04-18

v7.0.0 → v12.0.02025-03-12

### Community

Maintainers

![](https://www.gravatar.com/avatar/a77b1394b2faed4cc2298b741480a44ab9075292d687a7083e7a477de1fe40af?d=identicon)[junaidnasir](/maintainers/junaidnasir)

---

Top Contributors

[![junaidnasir](https://avatars.githubusercontent.com/u/10703810?v=4)](https://github.com/junaidnasir "junaidnasir (41 commits)")[![DariusIII](https://avatars.githubusercontent.com/u/3399658?v=4)](https://github.com/DariusIII "DariusIII (5 commits)")[![jimhill](https://avatars.githubusercontent.com/u/6712853?v=4)](https://github.com/jimhill "jimhill (4 commits)")[![bmichotte](https://avatars.githubusercontent.com/u/235510?v=4)](https://github.com/bmichotte "bmichotte (3 commits)")[![laravel-shift](https://avatars.githubusercontent.com/u/15991828?v=4)](https://github.com/laravel-shift "laravel-shift (3 commits)")[![EazyServer](https://avatars.githubusercontent.com/u/19202935?v=4)](https://github.com/EazyServer "EazyServer (1 commits)")[![chellem](https://avatars.githubusercontent.com/u/570856?v=4)](https://github.com/chellem "chellem (1 commits)")[![valeryan](https://avatars.githubusercontent.com/u/1508761?v=4)](https://github.com/valeryan "valeryan (1 commits)")[![mgjgid](https://avatars.githubusercontent.com/u/36155814?v=4)](https://github.com/mgjgid "mgjgid (1 commits)")[![uniconstructor](https://avatars.githubusercontent.com/u/1384545?v=4)](https://github.com/uniconstructor "uniconstructor (1 commits)")[![FredericTribu](https://avatars.githubusercontent.com/u/114988140?v=4)](https://github.com/FredericTribu "FredericTribu (1 commits)")

---

Tags

invitationlaravelsignuplaravelInviteinvitations

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/junaidnasir-larainvite/health.svg)

```
[![Health](https://phpackages.com/badges/junaidnasir-larainvite/health.svg)](https://phpackages.com/packages/junaidnasir-larainvite)
```

###  Alternatives

[laragear/two-factor

On-premises 2FA Authentication for out-of-the-box.

339785.3k8](/packages/laragear-two-factor)[casbin/laravel-authz

An authorization library that supports access control models like ACL, RBAC, ABAC in Laravel.

324339.9k4](/packages/casbin-laravel-authz)[yajra/laravel-acl

Laravel ACL is a simple role, permission ACL for Laravel Framework.

112103.9k1](/packages/yajra-laravel-acl)[offload-project/laravel-invite-only

A Laravel package for managing user invitations with polymorphic relationships, token-based access, scheduled reminders, and event-driven notifications.

694.4k1](/packages/offload-project-laravel-invite-only)[scaler-tech/laravel-saml2

SAML2 Service Provider integration for Laravel applications, based on OneLogin toolkit

2737.5k](/packages/scaler-tech-laravel-saml2)[toponepercent/baum

Baum is an implementation of the Nested Set pattern for Eloquent models.

3154.7k](/packages/toponepercent-baum)

PHPackages © 2026

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