The cost is not just building it. A portal has to be maintained, kept current, and secured, and it creates an expectation that the information inside is accurate. A portal showing stale project status is worse than no portal, because it teaches customers not to trust it and they go back to emailing you anyway, which is where you started plus the maintenance burden.
There is also an adoption problem that people underestimate. Clients have to remember another set of credentials for a site they visit occasionally, and they routinely will not. The businesses that make portals work are ones where the client logs in frequently enough for the habit to form. If your client interacts with you monthly or less, the portal will be the thing they cannot get into when they need it.
What usually satisfies the actual need is smaller. A shared folder in whichever cloud storage you already use gives clients their documents. Your invoicing software already has a client view for billing history. A scheduled update email is often preferred to a status page, because it arrives rather than requiring somebody to go and look.
Revisit when the same request arrives weekly rather than monthly, or when you have enough clients that the two minutes has become an hour a week. That is a real threshold, and until you cross it the portal is infrastructure looking for a problem.
If you build one anyway, keep it to one job rather than several. A portal that only shows invoices and payment history, or only project status, is maintainable and useful. One attempting documents, messaging, scheduling, and status becomes a small product with a support burden, and you now own software rather than using it. The scope that survives contact with a real week is narrower than the scope that sounds appealing while planning it.
If clients keep asking for the same information, that is a signal about your communication rather than an argument for a portal. Sending a short update at a predictable interval usually resolves it entirely, because the underlying request is reassurance rather than data. Building somewhere for people to look answers the literal question and frequently leaves the actual one unaddressed.