строка
outfile.write((char*) &text, sizeof (string));
неверна
sizeof(string)
не возвращает длину строки, она возвращает размер строкового типа в байтах.
также не отбрасывает текст в char*
с помощью C cast, вы можете получить символ char *, используя соответствующую функцию-член text.c_str()
, вы можете просто написать
outfile << text;
.
Попробуйте добавить --force к аргументам. То есть сделать это
exec('php artisan medialibrary:regenerate --ids='.$this->mediaId --force')