How should a society primarily take care of its poor?

Societies have always had disadvantaged citizens who are disadvantaged for many different reasons (mental illness, poor education, depression, indolence etc). How should society best care for these people?

Relying on the government/state guarantees at least some level of aid for all members of society, but that aid can be spotty, politically charged and expensive.

Relying on private charity empowers people to aid others and is less expensive to the State, but often results in large coverage gaps.