Pour l'erreur, c'est clair. La méthode create s'attend à ce que tu lui passes un tableau en paramètre. Élas, Post::all() retourne une Collection (qui contient des objets Post), donc ça ne marche pas dutoût de faire cela. Tu peux te documenter sur la documentation de Laravel (Eloquent) pour en savoir plus au sujet de l'utilisation des modèles.
Pour récupérer les valeurs soumis par un formulaire, un objet de type Http est passé en paramètre de l'action. Sur cet objet, tu as accès à une méthode get en autre. (http://getherbert.com/0.9/controllers et http://getherbert.com/0.9/inputs).
J'espère avoir répondu à la question ! Bonne journée ! :-)