Во-первых, конструкторы - это не метод, с помощью которого вы можете возвращать свойства, это просто метод, который вызывается для вновь создаваемых объектов, часто для установки свойств и тому подобного.
Я считаю, что ваша политика может быть написана так , перемещая __constructor
logi c в метод политики. Таким образом, удаляя __constructor все вместе, в Laravel
, если загрузка зависимостей загружена следующим образом, он попытается создать параметры конструктора в контейнере.
public function button(?User $user, $id)
{
#First Step
$this->bot = Bot::findOrFail($id);
#Second Step
if ( $this->bot->hasRole('admin') )
return true;
#Third Step
if ( $this->bot->status != 1 )
return false;
#Fourth Step
if ( $this->bot->account()->max >= $this->bot->button()->count() )
return true;
#Fail
return false;
}