Actual behaviour
Here I've a visual example:

In this example I'm implementing Illuminate\Contracts\Database\Eloquent\CastsAttributes interface which enforces me to use proper models instead of my own Statusable interfaced models, so this is the error you could find at PHP runtime (in this case, at tests):
OpenSoutheners\LaravelModelStatus\Casts\Status::get(
OpenSoutheners\LaravelModelStatus\Statusable $model, string $key, OpenSoutheners\LaravelModelStatus\ModelStatus $value, array $attributes
):
string must be compatible with Illuminate\Contracts\Database\Eloquent\CastsAttributes::get(
$model, string $key, $value, array $attributes
) in /Users/d8vjork/Projects/open-southeners/laravel-model-status/src/Casts/Status.php on line 16
Expected behaviour
To warn about the error as it should normally do (at the class X implements Y)
Actual behaviour
Here I've a visual example:
In this example I'm implementing
Illuminate\Contracts\Database\Eloquent\CastsAttributesinterface which enforces me to use proper models instead of my ownStatusableinterfaced models, so this is the error you could find at PHP runtime (in this case, at tests):Expected behaviour
To warn about the error as it should normally do (at the
class X implements Y)