Yo me quedaría con la 2da opción o la 4ta
Código PHP:
Ver original//Opción 2 slug implicito
$post = Post::make($request->all())->withImage('image');
$post->save();
Me parece mas legible y fácil de digerir., aparte de delegar la imagen a otra funcion que puede o no utilizarse.
La 1ra opción me parece que va de sobra y complica mas el estar construyendo el array en ese momento., sumado a la comprobación de la imagen que bien puede o no requerirse, por lo que me gusta mas delegarlo a otra función.
La 3ra opción es muy practica para usar en casos muy específicos pero le quitas flexibilidad, o da esa impresión, así que pasaría de hacer eso.
La 5ta opción, creo que esta de sobra la posibilidad del asignar el slug, salvo que vayan a reinventar la rueda y utilizar otro campo que no sea el titulo para tal fin.